大家都知道 Android 的 Activity 是存着历史栈的,比如从 A -> B -> C,C 完成 finish 后回到 B,把所有的Activity 都 finish了,程序就自然退出了。 当然在 finish 的同时也需要是否自己程序的其他资源。所以需要想个办法把 Activity 给存起来。然后在程序退出的地方调用它们的 finish()方法。
使用全局变量。对了,第一个想到的就是继承 Application,代码入下:
public class AgentApplication extends Application {
private List<Activity> activities = new ArrayList<Activity>();
public void addActivity(Activity activity) {
activities.add(activity);
}
@Override
public void onTerminate() {
super.onTerminate();
for (Activity activity : activities) {
activity.finish();
}
onDestroy();
System.exit(0);
}
}
然后在 Activity onCreate 的时候来调用 addActivity (),有人可能想到这个Application需要在所有的 Activity onCreate的时候都使用,需要做一个单例实例。其实根本不需要。在 Activity 中使用 this.getApplication() 就可以了。
最后在你需要推出程序的地方调用 application.onTerminate() 就可以了。记住:super.onTerminate() 必须调用,代码中的 onDestroy()是我自己的释放其他资源的方法,不是系统的。
运行以上代码后,在LogCat 中会出现一行提示:
Process 包名 (pid xxxxx) has died. 证明你的程序退出了。
分享到:
相关推荐
android完美退出app的实例代码.pdf
介绍了ANDROID 完美退出APP的实例代码,有需要的朋友可以参考一下
两种完美退出App的解决方案,一种是发送广播退出,一种是切入后台finish屌=掉
android介绍很多退出程序的方法,感觉都不是很好,这个退出方法不错,希望大家下载,点评!
图片为了完美适配屏幕,下方要留白。 登陆(Login page)启动页面发现没有登陆就跳转到这里了;当然这里还可以跳转到注册 主页面(Main page)启动页面发现用户已经登陆认证了就跳转到这里 启动--》登陆--》主...
NativeApp 使用传统原生态Android SDK来实现的应用 WebApp 基于浏览器来实现的一种应用 HybridApp 一种可以下载的Native App,其用户界面的全部或者部分元素在嵌入式浏览器组件(WebView之类的)里面运行 优雅降级...
星梦缘App是一款偏向娱乐的情感App,除了最基本的对星座的查询,星座解析功能外,还添加了网络视频播放的功能,摇一摇搜索附近的人的功能,使得用户体验更加完美。 功能: 1) 用户可以注册账号,同一账号不能重复...
|--应用之完美退出 |--应用之获取名称和图标 |--应用之获得占用内存大小 |--应用之通过包名开启一个应用 |--应用之隐式意图开启设置界面 |--应用启动之检查版本更新及初始化 |--延时任务的工具类 |--异常之...
此时此景,笔者只专注Android、Iphone等移动平台开发,看着这些源码心中有万分感慨,写此文章纪念那时那景! Java 源码包 Applet钢琴模拟程序java源码 2个目标文件,提供基本的音乐编辑功能。编辑音乐软件的朋友,这...
此时此景,笔者只专注Android、Iphone等移动平台开发,看着这些源码心中有万分感慨,写此文章纪念那时那景! Java 源码包 Applet钢琴模拟程序java源码 2个目标文件,提供基本的音乐编辑功能。编辑音乐软件的朋友,这...