在android中使用:[activityname].this.finish();  只是退出了activity的堆栈中,要真正的退出程序在手机cpu中的运行,当应用不再使用时,通常需要关闭应用,可以使用以下三种方法关闭android应用:

一   使用killProcess()函数,首先获取当前进程的id,然后杀死该进程:

android.os.Process.killProcess(android.os.Process.myPid());

通过这种方式不能将应用程序完全杀死,并且他不会把当前应用应用的Activity的task任务栈清空

二   在activity的生命周期函数中添加如下的函数,强制关闭与该包有关联的一切执行:

ActivityManager am = (ActivityManager)getSystemService(Context.ACTIVITY_SERVICE); am.restartPackage("packagename");

还需要在AndroidManifest.xml文件中加入如下的权限:<uses-permission android:name="android.permission.RESTART_PACKAGES" />
   
      此做法:只能杀死别人,不能杀死自己

三、 终止当前正在运行的Java虚拟机,导致程序终止
System.exit(0);
不会把自己的应用程序杀死

企业中做法:
创建类app 继承Application

AndroidMainfest -->name -->app //声明该类为整个应用程序全局的实例

创建整个应用程序全局的实例
App.class:
ArrayList<Activity> activities;

其他的Activity中:

 public void onCreate(Bundle savedInstanceState) {
App app = (App) getApplication();//获取应用程序全局的实例引用
app.activities.add(this); //把当前Activity放入集合中
} public void onDestory(){
App app = (App) getApplication();//获取应用程序全局的实例引用
app.activities.remove(this); //把当前Activity从集合中移除
}

安全退出:
在菜单退出按钮的事件中定义如下代码:

 App app = (App) getApplication();
List<Activity> activities = app.activities;
for(Activity act:activities){
act.finish();//显式结束
}

android退出activity的方式总结(一)的更多相关文章

  1. Android 退出Activity

    在一个Process或一个处理线程中退出Activity可以用context来退出,如下: ((Activity)context).finish(); Android程序有很多Activity,比如说 ...

  2. Android 启动Activity的方式

    Activity的启动分为两种方式,显示方式和隐式方式,显示方式就是在通过intent启动Activity时指定了Activity的包名和类名. 而隐式方式则在初始化Intent时仅仅指定action ...

  3. android退出Activity

    对于单一Activity的应用来说,直接finish() 或者killProcess()和System.exit() 退出. 但是对于多Activity个可以使用单例模式创建一个Activity管理对 ...

  4. Android 退出多Activity的application的方式

    在开发过程中,我们常常需要一个退出功能,来退出该应用的所有Activity.下面,我们列举一些退出应用的几种方式.以下用的源码点击查看源码地址 欢迎star,欢迎fork 利用ActivityCont ...

  5. 从注册流程 分析如何安全退出多个Activity 多种方式(附DEMO)

      退出Activity注册Android遍历   目录(?)[+] 前言 知识结构 具体方案 方案1 方法采用FLAG_ACTIVITY_CLEAR_TOP退出整个程序多activity 方案2 方 ...

  6. Android启动Activity的两种方式与四种启动模式

    1.在一个Activity中调用startActivity()方法 2.在一个Activity中调用startActivityRequest()方法. 重写onActivityResult方法,用来接 ...

  7. Android退出应用最优雅的方式(改进版)

    Android退出应用最优雅的方式(改进版)(转) 我们先来看看几种常见的退出方法(不优雅的方式) 一.容器式 建立一个全局容器,把所有的Activity存储起来,退出时循环遍历finish所有Act ...

  8. Android -- 启动另外一个Activity的方式(2s自动启动)

    1.  使用Handler  并且可以设置进入和退出的动画效果 Class < ? > activityClass; Class [ ] paramTypes = { Integer.TY ...

  9. Android退出时关闭所有Activity的方法

    Android退出时,有的Activity可能没有被关闭.为了在Android退出时关闭所有的Activity,设计了以下的类: //关闭Activity的类 public class CloseAc ...

随机推荐

  1. editplus使用:非法字符: \65279

    众所周知,在跨程序的工程中,统一编码是至关重要的,而目前最普遍的则是统一采用“utf8”编码方案. 但是在采用utf8方案的时候,请注意编辑器的自作聪明. 比如editplus. 原因就在于某些编辑器 ...

  2. C# 图片压缩 开源库

    http://www.rasteredge.com/how-to/csharp-imaging/image-compressing/ http://www.rasteredge.com/dotnet- ...

  3. POJ1042 Gone Fishing

    采用贪心策略. 假设他从1湖泊走到x 湖泊,这还剩下 h*12 - sigma(T1--Tx-1).(单位时间为5分钟).然后再用剩下的时间去钓1-x的湖泊的鱼. 每次都选择最多鱼的湖泊钓. code ...

  4. SQL SERVER 中 实现主表1行记录,子表多行记录 整合成一条虚拟列

    表中有这样的记录,简单的主子表,现要想通过left join 语句把两表关联起来 select * from tbl_diary_reback a left join tbl_diary_reback ...

  5. 自动备份多个MOSS站点集的脚本

    自动备份多个站点集的脚本(backupscript.bat)可以生成文件名如"Site80_20140327.bak"的备份文件. @echo offecho ++++++++++ ...

  6. JS onkeydown控制HTML Input 只录入浮点数值

    // -1) return false; return index == 0 } keychar = String.fromCharCode(keynum) var newVal = oriVal.s ...

  7. Android Studio的配置

    第一次使用Android Studio时你应该知道的一切配置 - 生命壹号 - 博客园http://www.cnblogs.com/smyhvae/p/4390905.html

  8. 第10课_dg

    export ORACLE_BASE=/u01/app/oracle export ORACLE_HOME=$ORACLE_BASE/product/10.2.0/db_1 export ORACLE ...

  9. How to select a CRAN mirror in R & use repos parameter(2)

    首次添加功能包需要设定CRAN镜像库: 方法是依据提示:--- Please select a CRAN mirror for use in this session ---,在弹出的窗口中选择CRA ...

  10. JavaScript、JSP、Java及javaEE

    对JavaScript.JSP.Java及javaEE之间区别的理解 JavaScript和Java名字极为类似,相信不少的初学者或者准备学这些知识的人对于JavaScript.JSP.Java及Ja ...