`
iaiai
  • 浏览: 2196939 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

ANDROID 完美退出 APP 方法

 
阅读更多
大家都知道 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的实例代码.pdf

    ANDROID 完美退出APP的实例代码

    本文将详细介绍如何实现“完美退出APP”的实例代码。 首先,我们需要理解Android的Activity管理机制。Android使用Activity栈来管理应用的生命周期。每次启动一个新的Activity,它会被压入栈顶,当一个Activity完成...

    完美退出App的解决方案

    在Android开发中,正确地退出App是一个常见的需求,但也是一个有争议的话题,因为谷歌官方并不推荐用户通过手动方式强制退出App。然而,某些场景下,如优化用户体验或特定功能需求,我们仍然需要实现这一功能。本文...

    android 完美退出程序

    ### Android完美退出程序详解 #### 一、引言 在Android开发过程中,有时我们需要实现一个“一键退出”功能,即用户点击某个按钮后能够迅速且干净地关闭整个应用程序。这不仅可以提升用户体验,还能确保程序资源...

    Android完美退出程序

    通过上述方法,我们可以有效地实现Android应用程序的完美退出。这种方式不仅能够确保所有的`Activity`都被正确关闭,还能根据不同的需求选择合适的退出策略。此外,通过使用单例模式来管理全局状态,使得整个实现...

    安卓期末课程设计、一款星梦缘App 包含源代码、使用手册和心得体会

    星梦缘App是一款偏向娱乐的情感App,除了最基本的对星座的查询,星座解析功能外,还添加了网络视频播放的功能,摇一摇搜索附近的人的功能,使得用户体验更加完美。 功能: 1) 用户可以注册账号,同一账号不能重复...

    android实现登陆界面

    图片为了完美适配屏幕,下方要留白。 登陆(Login page)启动页面发现没有登陆就跳转到这里了;当然这里还可以跳转到注册 主页面(Main page)启动页面发现用户已经登陆认证了就跳转到这里 启动--》登陆--》主...

    HbuilderX3.8.12 下载好插件的版本 完美解决有些电脑无法安装插件问题

    1、App 真机运行 2、Ask ChatGPT 人工智能 3、Git 插件 4、HbuilderX English Language pack 5、less 编译 6、Prettier 7、scss/sass 编译 8、uni-app App 调试 9、uni-app(Vue 2)编译 10、uni-app(Vue3)编译 11、...

    工程硕士学位论文 基于Android+HTML5的移动Web项目高效开发探究

    NativeApp 使用传统原生态Android SDK来实现的应用 WebApp 基于浏览器来实现的一种应用 HybridApp 一种可以下载的Native App,其用户界面的全部或者部分元素在嵌入式浏览器组件(WebView之类的)里面运行 优雅降级...

    完美解决客户端webview持有的页面缓存,不会立即释放的问题

    2. **遵循生命周期**:在Android的`Activity`的`finish()`方法或iOS的视图控制器的适当生命周期方法(如`deinit`)中执行清理操作。 3. **资源释放**:除了清空页面,还需要确保取消订阅所有可能存在的观察者、...

    DiskLrucacheDemo

    7. **关闭缓存**:在应用退出或不再需要缓存时,调用`close()`方法,释放资源。 【注意事项】 1. **文件操作**:DiskLruCache进行文件操作时,需要确保文件系统的读写权限。 2. **并发控制**:由于磁盘操作不是...

    黑马程序员 安卓学院 万元哥项目经理 分享220个代码实例

    |--应用之完美退出 |--应用之获取名称和图标 |--应用之获得占用内存大小 |--应用之通过包名开启一个应用 |--应用之隐式意图开启设置界面 |--应用启动之检查版本更新及初始化 |--延时任务的工具类 |--异常之...

    Fragment重叠解决方案

    5. **使用FragmentContainerView**:在布局XML中使用`&lt;androidx.fragment.app.FragmentContainerView&gt;`替代`&lt;FrameLayout&gt;`作为Fragment的容器,它可以更好地处理Fragment的生命周期和动画。 6. **监听Fragment的...

    JAVA上百实例源码以及开源项目源代码

    此时此景,笔者只专注Android、Iphone等移动平台开发,看着这些源码心中有万分感慨,写此文章纪念那时那景! Java 源码包 Applet钢琴模拟程序java源码 2个目标文件,提供基本的音乐编辑功能。编辑音乐软件的朋友,这...

Global site tag (gtag.js) - Google Analytics