从activityA跳到activityB,可以在AstartActivity后就调用finish,然后再B调用finish或使用方法1也可以直接退出程序。
Android程序有很多Activity,比如说主窗口A,调用了子窗口B,如果在B中直接finish(), 接下里显示的是A。在B中如何关闭整个Android应用程序呢?本人总结了几种比较简单的实现方法。
1. Dalvik VM的本地方法
android.os.Process.killProcess(android.os.Process.myPid()) //获取PID
System.exit(0); //常规java、c#的标准退出法,返回值为0代表正常退出
2. 任务管理器方法
首先要说明该方法运行在Android 1.5 API Level为3以上才可以,同时需要权限
ActivityManager am = (ActivityManager)getSystemService (Context.ACTIVITY_SERVICE);
am.restartPackage(getPackageName());
系统会将,该包下的 ,所有进程,服务,全部杀掉,就可以杀干净了,要注意加上
3. 根据Activity的声明周期
3. 我们知道Android的窗口类提供了历史栈,我们可以通过stack的原理来巧妙的实现,这里我们在A窗口打开B窗口时在Intent中直接加入标志 Intent.FLAG_ACTIVITY_CLEAR_TOP,这样开启B时将会清除该进程空间的所有Activity。
在A窗口中使用下面的代码调用B窗口
Intent intent = new Intent();
intent.setClass(Android123.this, CWJ.class);
intent.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP); //注意本行的FLAG设置
startActivity(intent);
接下来在B窗口中需要退出时直接使用finish方法即可全部退出。
4.自定义一个Actiivty 栈,道理同上,不过利用一个单例模式的Activity栈来管理所有Activity。并提供退出所有Activity的方法。代码如下:
public class ScreenManager {
private static Stack activityStack;
private static ScreenManager instance;
private ScreenManager(){
}
public static ScreenManager getScreenManager(){
instance=new ScreenManager();
}
return instance;
}
//退出栈顶Activity
public void popActivity(Activity activity){
activity.finish();
activityStack.remove(activity);
activity=null;
}
}
//获得当前栈顶Activity
public Activity currentActivity(){
Activity activity=activityStack.lastElement();
return activity;
}
//将当前Activity推入栈中
public void pushActivity(Activity activity){
activityStack=new Stack();
}
activityStack.add(activity);
}
//退出栈中所有Activity
public void popAllActivityExceptOne(Class cls){
while(true){
Activity activity=currentActivity();
break;
}
break;
}
popActivity(activity);
}
}
}
分享到:
相关推荐
在Android系统中,由于其设计原则,通常不鼓励开发者实现一键退出应用的功能,因为系统会自动管理应用程序的内存资源。然而,用户有时可能有需求快速退出应用,这就涉及到如何在Android程序中实现这一功能。本篇文章...
以下是对Android完全退出当前应用程序四种方法的详细解释: 1. **Dalvik VM的本地方法** 这种方法涉及调用Android系统的本地方法来直接结束进程。首先获取当前进程的PID(Process ID),然后使用`killProcess()`...
总结来说,"Android中实现再按一次返回键退出应用程序"的核心是通过重写Activity的onKeyDown()方法,监听返回键事件,并结合时间判断来决定是否真的退出应用。这种设计体现了Android应用开发中的用户体验和交互设计...
以上就是在Android中退出整个应用的几种常见方法。在实际开发中,应尽量遵循Android的设计原则,让用户通过系统默认的后退行为来管理应用,除非有特殊需求。同时,确保在退出前保存必要的数据,避免用户丢失进度。在...
在Android平台上,应用程序的退出方式并不像桌面操作系统那样简单,因为Android系统会自动管理应用程序的生命周期,以便在需要时高效地使用系统资源。然而,有时开发者或用户可能希望应用程序能够完全退出,以防止...
在Android开发中,退出应用程序是一个常见的需求,尤其是在某些特定的应用场景下,用户可能希望完全关闭应用,而不是简单地退回到后台。本示例"退出Android应用程序Demo"将讲解如何实现这个功能,涉及到的关键知识点...
"UncaughtException不让Android应用异常退出"这个主题,就是关于如何处理程序中的未捕获异常,以防止应用突然崩溃,从而提升用户体验。在这个问题上,我们可以从以下几个方面来探讨: 1. **...
在Android应用开发中,用户可能需要在完成一系列操作后彻底退出程序,特别是在处理完敏感信息或者需要节省系统资源的情况下。通常,一个Android应用由多个Activity组成,每个Activity代表一个独立的屏幕或功能。当...
在Android开发中,完全退出应用程序通常指的是关闭所有与应用相关的活动(Activities)和释放系统资源。这不仅是用户体验的一部分,也可能在某些情况下是必要的,比如在内存紧张时优化系统性能。以下是一个关于如何...
在Android开发中,退出整个应用是...总之,Android退出整个应用的例子涉及对Activity栈的理解、生命周期的管理以及适当的方法选择。开发者应当谨慎处理这一功能,确保其符合Android的设计哲学,并提供良好的用户体验。
我之前的一般操作是按返回键,或者直接按home键直接返回,其实这两种操作都没有关闭当前应用程序,没有释放系统资源。有时跳转的activity较多时,还需要多次按返回键,这样感觉一点都不爽。 后面添加了一个菜单返回...
如果想退出Android程序,一般都是调用finish()、System.exit(0)android.os.Process.killProcess(android.os.Process.myPid())等方法来实现退出程序功能,可是在实际开发中,并不能达到完全退出应用程序的效果,...
在Android系统中,应用程序并不总是按照开发者预期的方式退出,因为系统可能会为了节省资源而自动暂停或杀死应用。理解如何优雅地退出Android程序对于优化用户体验和避免意外的数据丢失至关重要。 首先,我们要知道...
本资源“安卓后台服务相关-Android中一键退出应用程序.rar”似乎包含了与实现一键退出应用相关的代码示例,这在某些场景下可能是必要的,比如优化内存占用或者提高用户体验。 首先,我们来深入理解一下Android的...
在Android系统中,完全退出一个程序是指结束应用的所有活动并释放其占用的系统资源,以便用户可以快速重新启动或切换到其他应用。这通常涉及到理解Android应用生命周期、使用Activity管理和处理Intent等方面的知识。...
在Android中,单纯调用`System.exit(0)`或`android.os.Process.killProcess(android.os.Process.myPid())`并不能确保应用程序中的所有Activity都被完全关闭,尤其是当应用程序中有多个Activity栈存在时。这种情况下...
在Android操作系统中,程序的退出方式与iOS等其他系统有所不同,因为Android系统设计的理念是让应用程序在后台继续运行,以实现更好的多任务处理。然而,有些情况下用户或开发者可能希望实现一个明确的退出功能,...
本项目提供了一个Android应用源码示例,适用于毕业设计或深入理解Android应用程序生命周期的学习。下面将详细讲解如何在Android中实现完全退出程序。 首先,了解Android应用的基本结构。一个Android应用通常由一个...
在Android开发中,确保应用程序能够安全退出是至关重要的。安全退出不仅意味着关闭当前运行的活动,还要处理好程序运行过程中的资源释放、内存管理以及用户数据的保存等问题。以下是一些关于Android程序安全退出的...