`
phoenixfu
  • 浏览: 96319 次
  • 性别: Icon_minigender_1
  • 来自: 广州
社区版块
存档分类
最新评论

关于如何完全退出Activity

阅读更多

 相信能看到这里的人,都已经是找过很多文章了,先说需求,A-->B-->C 这样打开页面,在C的时候关闭finish()可以关闭D页面,但显示B页面,需求就是 当在C页面关闭,可以把ABC几个页面都关闭了。简单来说,整个程序的退出。

我也把我看过的文章和做过的经验总结一下吧:

1: Android2.1以下的程序,可以用以下方法完全退出  

  

ActivityManager am = (ActivityManager)getSystemService(ACTIVITY_SERVICE);
am.restartPackage(getPackageName());

   

   但需要在AndroidManifest.xml声明权限    

  

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

 

2

Android2.2API restartPackage的描述 写道
This method is deprecated.
This is now just a wrapper for killBackgroundProcesses(String); the previous behavior here is no longer available to applications because it allows them to break other applications by removing their alarms, stopping their services, etc.

    

    在2.2里面推出新的方法 killBackgroundProcesses(String packageName). 此函数的API Level最小为8,方法如下  

 

ActivityManager am = (ActivityManager)getSystemService(ACTIVITY_SERVICE);
am.killBackgroundProcesses(getPackageName());

   

  需要在AndroidManifest.xml里声明权限

   

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

  

3:但不知道为什么,我在2.2中 killBackgroundProcesses的方法也是无效的。经过许多文章的阅读,找到了以下的方法

    A页面代码如下:

Intent intent = new Intent();
intent.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);//关键!
intent.setClass(A.this, B.class);
startActivity(intent);

 

    B页面代码如下: 

Intent intent = new Intent();
intent.setClass(B.this, C.class);
startActivity(intent);

 

     C页面代码如下:

Intent startMain = new Intent(Intent.ACTION_MAIN);
startMain.addCategory(Intent.CATEGORY_HOME);//必须,没有这个你可以看看效果~
startMain.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);//可无
startActivity(startMain);
System.exit(0);//关键,如果换成 finish()效果表面一样,但实际并无关进程

  关键是,A页面(起始页面) C页面(关闭页面) 的设置

   其实关于A页面的设置 很多文章都有说,但在C页面这里,却很少了。

   通过已上三步,基本能关掉所有进程,因为在任务管理器没有了,如果最后的System.exit(0)换成finish()任务管理器里面仍显示该项目正在运行。

    但这里还有一个bug的,就是关闭之后,再次启动程序,会去到B页面。。。 哈哈,这里的解决方法就很多了,根据大家的业务需求去做吧。

 

  在Android做应用层,如果你想做好,想把体验做得更贴切,其实也是很复杂的事情。

 

希望大家看到这个文章能觉得有用,谢谢已阅者!

分享到:
评论
2 楼 1037055520 2011-08-25  
可以举例说明一下  解决的办法么?灰常感谢。。
1 楼 1037055520 2011-08-25  
但这里还有一个bug的,就是关闭之后,再次启动程序,会去到B页面。。。 哈哈,这里的解决方法就很多了,根据大家的业务需求去做吧。

请问:如果要回到启动模拟器的最初界面,应该怎么做呢?

相关推荐

    Android 多个activity完全退出实例代码

    1、新建一个 ExitApplication 类继承Application 2、在你要退出的activity Oncreate方法中加入...3、在你当前要完全退出程序的activity中覆盖onKeyDown方法. 4、当你点击手机的返回按钮时将提示:是否退出系统。

    Android应用开发多个activity完全退出程序方法

    Android应用开发多个activity完全退出程序方法,亲测可用

    退出程序提示,退出程序后关闭所有activity

    退出程序提示,退出程序后关闭所有activity

    Android 完全退出程序,关闭所有Activity

    点击退出按钮时,关闭所有Activity,实现退出程序功能。 实现方法: 添加每一个Activity到一个Activity集合中,退出时遍历集合,将每一个Activity finish掉。

    如何完全退出程序

    在Android中,如果想退出Android程序,一般都是调用finish()、System.exit(0)、android.os.Process.killProcess(android.os.Process.myPid())等方法来实现退出程序功能,可是在实际开发中,并不能达到完全退出应用...

    怎样完全退出android程序

    在Android中,如果想退出Android程序,一般都是调用finish()、System.exit(0)android.os.Process.killProcess(android.os.Process.myPid())等方法来实现退出程序功能,可是在实际开发中,并不能达到完全退出应用程序...

    Apk完全退出Apk

    做android 应用开发时,经常无法完全退出APK。这里将提供一种方法,展示如何完全退出android应用!

    android中实现完全退出程序方法(退出所有activity)

    主要介绍了android中实现完全退出程序方法(退出所有activity),本文方法是博主个人使用的一个方法,据说效果非常好,需要的朋友可以参考下

    Android Activity 完全结束并退出程序的实例

    关于完全退出Android程序,网上这方面的帖子很多,方法也很多。记得当时自己写的第一个比较完整的项目的时候就遇上了这个问题,由于对Activity的生命周期了解不够,又使用了TabActivity使得层次关系比较复杂,在程序...

    Android完全退出程序方法

    当程序有多个Activity时,采用广播机制完全退出程序

    android中Activity详解(生命周期、以各种方式启动Activity、状态保存,完全退出等)

    一、什么是Activity? 简单的说:Activity就是布满整个窗口或者悬浮于其他窗口上的交互界面。在一个应用程序中通常由多个Activity构成,都会在Manifestxml中指定一个主的Activity,如下设置 当程序第一次运行时...

    android 完全退出应用程序实现代码

    android退出应用程序会调用android.os.Process.killProcess(android.os.Process.myPid())或是System.exit(0),这只是针对第一个Activity(也就是入口的Activity)时生效。如果有A,B,C三个Activity,而想在B或C中...

    程序完全退出

    实现程序的完全退出,彻底销毁程序的进程,利用application的全局功能,适合初学者的开发与学习

    退出android应用程序Demo

    实现完全退出应用程序功能,停止所有应用程序的Activity,停止Service

    Android 完全退出应用程序的解决方法

    有一种需要,我们在菜单项中点击退出应用程序,应用程序就退出,不需要回到MainActivity设计:有两个应用界面MainActivity和BActivity,以及用于程序的通用类ExitUtil ... } // 完全退出应用程序 p

    Android完全退出应用程序的方法

    本文实例讲述了Android完全退出应用程序的方法。分享给大家供大家参考。具体如下: 在Android中,如果想退出Android程序,一般都是调用finish()、System.exit(0)、android.os.Process.killProcess(android.os....

    Android 完全退出当前应用程序的四种方法

     //常规java、c#的标准退出法,返回值为0代表正常退出   2. 任务管理器方法  首先要说明该方法运行在Android 1.5 API Level为3以上才可以,同时需要权限  ActivityManager am = (ActivityManager)...

Global site tag (gtag.js) - Google Analytics