您的位置:首页 > 移动开发 > Android开发

退出Activity的方法

2016-07-26 11:00 495 查看
转载自http://blog.sina.com.cn/s/blog_8996e7110102wkjv.html

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文件中加入如下的权限:android:name="android.permission.RESTART_PACKAGES" />
   
      此做法:只能杀死别人,不能杀死自己

三、 终止当前正在运行的Java虚拟机,导致程序终止

System.exit(0);

不会把自己的应用程序杀死

企业中做法:

创建类app 继承Application

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

创建整个应用程序全局的实例

App.class:

ArrayList 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 activities = app.activities;

for(Activity act:activities){

  act.finish();//显式结束

}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  Android移动