Android完全退出方法汇总

来源:互联网 发布:淘宝全球购的入驻条件 编辑:程序博客网 时间:2024/05/22 17:29


--andy.xie2012-6

我们在开发一个android应用时,有可能有N个Activity,怎么样在任意一个activity里面完全退出程序了?

 

FLAG_ACTIVITY_CLEAR_TOP方法(强烈推荐)

FLAG_ACTIVITY_CLEAR_TOP:

如果设置,并且这个Activity已经在当前的Task中运行,因此,不再是重新启动一个这个Activity的实例,而是在这个Activity上方的所有Activity都将关闭,然后这个Intent会作为一个新的Intent投递到老的Activity(现在位于顶端)中。

    例如,假设一个Task中包含这些Activity:A,B,C,D。如果D调用了startActivity(),并且包含一个指向Activity B的Intent,那么,C和D都将结束,然后B接收到这个Intent,因此,目前stack的状况是:A,B。

 

使用方法:

       当我们点击“退出程序”时,可以从当前Activity跳转到主Activity(就是我们打开程序最先启动的那个Activity),通过Intent告诉主Activity我要退出程序,然后主Activity调用finish()方法即可。

       比喻如果已经打开Activity:A,B,C,D,这时从D跳转到A时会自动把B和C都关闭,然后A读取到Intent带的退出信号后执行finish,这样就实现完全退出了。

Intent i = new Intent(this, A.class);

i.setFlags(Intent. FLAG_ACTIVITY_CLEAR_TOP);

i.putExtras(“exit”,  true);

startActivity(i);

 

2  杀掉进程方法(不推荐,这样会打乱android 程序的生命周期)

       1)System.exit(0);

       2)restartPackage(Android 1.5 - 2.1);

 

<uses-permissionandroid:name="android.permission.RESTART_PACKAGES" />

 

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

am.restartPackage("packagename"); 

 

原创粉丝点击