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

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

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


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

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

ActivityManageram=(ActivityManager)getSystemService(Context.ACTIVITY_SERVICE);

am.restartPackage("packagename");

还需要在AndroidManifest.xml文件中加入如下的权限:<uses-permissionandroid: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();//显式结束
}

更多相关文章

  1. android 2.android 系统架构与应用程序目录介绍
  2. Android中的全局变量
  3. Android 官方博客 - Android应用程序的内存分析
  4. RTC搭建android下三层应用程序访问服务器MsSql-客户端
  5. Android应用程序中执行二进制命令
  6. Android 应用程序获得系统权限
  7. Android应用程序设计——入门配置

随机推荐

  1. 转:Android(安卓)AsyncTask
  2. Android系统中设置TextView的行间距(非行
  3. Android(安卓)所有版本区别总结
  4. android知识链接汇总(3)
  5. Android系统编译环境变量的设置
  6. Android(安卓)NDK开发实例教程
  7. 菜鸟学Android开发系列之:初探Button和Tex
  8. android键盘弹出之后界面整体上移,顶出去
  9. Android通用框架设计与完整电商App开发
  10. Android(安卓)系统中WatchDog 日志分析