本文转自:http://kofi1122.blog.51cto.com/2815761/703751
关于完全退出Android程序,网上这方面的帖子很多,方法也很多。记得当时自己写的第一个比较完整的项目的时候就遇上了这个问题,由于对Activity的生命周期了解不够,又使用了TabActivity使得层次关系比较复杂,在程序中添加的“退出”菜单项经常无法完全退出,之后网上各种搜索,各种方法也试过了,什么System.exit(0)啊,结束进程之类的啊,都依然无效果。
后面才发现的这个方法。思路也很简单,回想自己当初为了解决这个问题时的苦苦寻觅,遂决定将其共享,供遇到此问题人士作为参考。
啰嗦够了,上思路:添加一个全局变量作为程序退出的标记(boolean类型),当需要退出程序时置为true,程序中每个Activity的onStart方法中对该变量进行判断,为true就结束自己。
看代码吧:
使用Application来保存一个全局变量isProgramExit。(对Application使用不熟悉的话查看相关资料)
public class MyApplication extends Application { // 程序退出标记 private static boolean isProgramExit = false; public void setExit(boolean exit) { isProgramExit = exit; } public boolean isExit() { return isProgramExit; } }
在你退出时需要结束的每个Activity的 onStart方法加上以下代码:
protected void onStart() { super.onStart(); MyApplication mApp = (MyApplication)getApplication(); if (mApp.isExit()) { finish(); } }
比如,程序中有三个Activity,A —— B —— C;现在在C中有个按钮,点击退出整个程序。按照上面说的,在A和B的onStart方法中加入判断代码(C中可以不加),C中点击按钮时执行:
MyApplication mApp = (MyApplication)getApplication(); mApp.setExit(true); finish();
这样C结束了自己,按照流程会回到B,然后B中会进行判断,因为退出条件满足,结束自己;再回到A,同样也结束……
可以看到,这种方法并不高明,甚至有些复杂,因为要在每个Activity的onStart中都加上判断。但不可否认的是这种方法却是绝对有效的,不管你的程序中Activity如何跳转来跳转去,只要一声令下,通通结束,屡试不爽。
所以,有遇到程序退出问题的朋友可以作为参考。
分享到:
相关推荐
因此,我们需要一种策略来确保所有Activity都被正确关闭,以便完全退出程序。 在Android中,Activity的启动和管理是通过Activity栈(也称为任务栈)来实现的。每次启动一个新Activity,它都会被压入栈顶,而当用户...
标题 "Android-AndroidActivity侧滑退出库" 指的是在Android应用开发中,使用特定的库实现Activity的侧滑退出功能。这种功能常见于许多现代Android应用,它为用户提供了一种直观且易于操作的界面返回方式,类似于...
在Android应用开发中,滑动边缘退出Activity是一种常见的交互设计,它可以提供更加直观和便捷的用户界面体验。本文将深入探讨如何在Android中实现这一功能,主要涉及Android自定义手势识别、视图层级管理和Activity...
本文将介绍一种使用全局变量标记来实现完全结束并退出 Android 程序的方法。这个方法的思路很简单,即添加一个全局变量作为程序退出的标记(boolean 类型),当需要退出程序时置为 true,然后在每个 Activity 的 ...
为了解决这一问题,一种常见的做法是利用单例模式创建一个全局的`ExitApplication`类来管理所有的Activity。具体来说,每当一个新的Activity被创建时,就在其`onCreate()`方法中调用`ExitApplication.getInstance()....
2. **利用FLAG_ACTIVITY_CLEAR_TASK和FLAG_ACTIVITY_NEW_TASK**:这是一种更加符合Android设计原则的方法,通过设置Intent的标志,可以清除当前任务栈的所有Activity,达到退出程序的效果。 ```java public void ...
在Android应用开发中,完全退出一个程序并非简单地关闭当前活动(Activity)。特别是当应用程序包含多个Activity时,单纯地从栈顶Activity退出并不能确保整个应用的完全关闭,因为其他Activity可能仍在后台运行。本...
在Android应用开发中,"退出程序提示,退出程序后关闭所有Activity"是一个常见的需求,它涉及到用户交互和应用生命周期管理。Activity是Android系统中的一个核心组件,代表了用户与应用进行交互的界面。当用户完成某...
退出app的两种方式 1 创建activity的基类,...这样就可以清除栈底之外的所有activity,程序会自动执行onNewIntent方法,在该方法中获取它action, 如果等于"exit_app",则关闭栈底activity,就可以退出App 详情请看代码
在Android系统中,完全退出一个程序是指结束应用的所有活动并释放其占用的系统资源,以便用户可以快速重新启动或切换到其他应用。这通常涉及到理解Android应用生命周期、使用Activity管理和处理Intent等方面的知识。...
在Android开发中,Activity是应用程序的基本构建块,它代表用户与应用交互的界面。当我们谈论Activity的启动和退出动画,我们实际上是在讨论如何通过自定义动画来增强用户体验,使应用更具吸引力。Android系统允许...
在Android开发中,Activity是应用程序的基本构建块,用于展示用户界面和处理用户交互。为了提升用户体验,Android系统允许开发者自定义Activity之间的跳转动画,使应用看起来更加生动和专业。本篇文章将深入探讨如何...
本文将详细介绍一种在Android中实现“完美退出”的方法,并对其实现原理进行深入探讨。 #### 二、实现方案概述 本方案通过自定义`MyApplication`类来管理所有活动(Activity)的生命周期,确保在退出应用时能够...
本文将详细探讨两种常见的退出程序的方法,并结合Android的基本框架进行解析。 首先,让我们了解第一种退出程序的方式:通过点击按钮来触发退出操作。在Android应用中,通常会为用户提供一个"退出"或"关闭"的按钮,...
`Dialog`是Android提供的一种轻量级窗口,通常用于显示简短的信息或让用户做出选择。然而,当对话框需要包含大量内容、多个输入字段或者自定义布局时,`Dialog`可能无法满足需求,这时我们可以考虑使用`Activity`。 ...
6. **使用单一Activity架构**:另一种方法是采用单一Activity配合多个Fragment的设计模式,这样只需要结束单一的Activity即可退出应用,简化了退出逻辑。 在实际开发中,应根据具体需求选择合适的方法。同时,考虑...
本文将详细介绍一种基于自定义`Application`类来实现应用程序完美退出的方法。 #### 二、基础知识回顾 在深入探讨之前,我们先回顾一下与本主题相关的几个基础概念: 1. **Activity**:它是Android四大组件之一,...
总的来说,"Android悬浮Activity ( Dialog风格)"是通过自定义Activity样式和窗口属性来实现的一种交互方式。开发者可以通过这种方式创建轻量级的、易于访问的小部件,提高用户体验。同时,结合`CameraDemo`,我们...
在Android开发中,确保应用程序完全退出是一个常见的需求,特别是在用户希望释放系统资源或者节省电量时。本教程将探讨如何在Android应用中实现“完全退出”的功能。我们将主要围绕以下两个核心知识点进行深入讨论:...