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());
系统会将,该包下的 ,所有进程,服务,全部杀掉,就可以杀干净了,要注意加上
<uses-permission android:name=\"android.permission.RESTART_PACKAGES\"></uses-permission>
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设置TOP
startActivity(intent);
接下来在B窗口中需要退出时直接使用finish方法即可全部退出
4.写一个堆栈来管理activity
public class ScreenManager {
private static Stack<Activity> activityStack;
private static ScreenManager instance;
private ScreenManager(){
}
public static ScreenManager getScreenManager(){
if(instance==null){
instance=new ScreenManager();
}
return instance;
}
//退出栈顶Activity
public void popActivity(Activity activity){
if(activity!=null){
activity.finish();
activityStack.remove(activity);
activity=null;
}
}
//获得当前栈顶Activity
public Activity currentActivity(){
Activity activity=activityStack.lastElement();
return activity;
}
//将当前Activity推入栈中
public void pushActivity(Activity activity){
if(activityStack==null){
activityStack=new Stack<Activity>();
}
activityStack.add(activity);
}
//退出栈中所有Activity
public void popAllActivityExceptOne(Class cls){
while(true){
Activity activity=currentActivity();
if(activity==null){
break;
}
if(activity.getClass().equals(cls) ){
break;
}
popActivity(activity);
}
}
}
分享到:
相关推荐
### Android完美退出程序详解 #### 一、引言 在Android开发过程中,有时我们需要实现一个“一键退出”功能,即用户点击某个按钮后能够迅速且干净地关闭整个应用程序。这不仅可以提升用户体验,还能确保程序资源...
要完全退出程序,需要理解并妥善管理这些生命周期回调。 2. **Activity栈与任务栈** Android系统使用任务(Task)和Activity栈的概念来管理应用的运行。每次启动一个新Activity,它都会被压入当前任务的栈顶。当用户...
Toast.makeText(this, "已点击一次,再按一次退出程序", Toast.LENGTH_SHORT).show(); } } ``` 在这个例子中,我们首先增加了一个变量`backPressCount`来记录返回键的点击次数,然后在`onBackPressed()`中检查这...
在Android系统中,点击两次返回键退出程序是一种常见的应用安全机制,目的是防止用户意外地退出正在使用的应用。这种设计能够确保用户在误触返回键时,不会立即退出应用,而是需要再次确认。以下是对这个主题的详细...
在Android应用开发中,完全退出程序意味着结束所有与应用程序相关的活动(Activity)并释放系统资源。用户通常期望点击“退出”按钮后,整个应用程序能够完全关闭,而不是仅仅停留在后台运行。下面我们将详细讨论...
【Android程序退出】是关于Android应用生命周期管理的重要话题。在Android系统中,应用程序并不总是按照开发者预期的方式退出,因为系统可能会为了节省资源而自动暂停或杀死应用。理解如何优雅地退出Android程序对于...
然而,如果确实需要提供这种功能,确保在提示用户时清晰说明,并考虑提供一种非侵入性的退出方式,如多次点击退出按钮。 总之,通过广播机制完全退出Android程序,可以确保所有Activity都被正确地清理,从而避免...
总的来说,实现“退出程序的功能,关闭所有本程序界面”涉及到对Android Activity生命周期的理解、适当的代码实现以及遵循良好的应用程序设计原则。在编写这样的功能时,应谨慎处理,以免影响用户的使用习惯和系统的...
在退出程序时,通常需要调用`finish()`方法,它会触发`onDestroy()`,标志着应用程序实例的结束。 2. **Delphi XE5中的FireMonkey框架**: Delphi XE5引入了FireMonkey框架,使得开发者可以使用相同的代码库跨平台...
在Android应用开发中,通常我们希望用户在按下返回键时能够退出应用程序,但为了提供更好的用户体验,Android系统并不推荐直接在用户第一次点击返回键时就退出。为了实现“再按一次返回键退出应用程序”的功能,我们...
在Android应用开发中,用户可能需要在完成一系列操作后彻底退出程序,特别是在处理完敏感信息或者需要节省系统资源的情况下。通常,一个Android应用由多个Activity组成,每个Activity代表一个独立的屏幕或功能。当...
在Android开发中,有时我们需要实现一个功能,使得用户在点击某个按钮后,应用程序能够完全退出,包括清除所有活动栈中的Activity以及停止后台服务。这里我们将深入探讨如何利用`Application`类来实现这一功能,以及...
Toast.makeText(this, "再次点击退出程序", Toast.LENGTH_SHORT).show(); new Handler().postDelayed(new Runnable() { @Override public void run() { // 2秒后,如果用户没有再次点击返回键,执行退出操作 ...
在Android原生系统中,虽然可以通过点击设备的返回按钮或者程序内的回退图标来返回上一级界面,但侧滑退出手势则提供了一种更加流畅的用户体验。 描述 "Android Activity 侧滑退出库" 表明这个库是专为Android ...
Toast.makeText(this, "再按一次退出程序", Toast.LENGTH_SHORT).show(); back_pressed = System.currentTimeMillis(); } ``` 总结来说,完全退出Android应用需要理解Activity的生命周期,并结合使用如广播接收器...
Android 实现按两次返回键退出程序(两种方法) 第一种方法: // 是否退出程序 private static Boolean isExit = false; // 定时触发器 private static Timer tExit = null; 第二种方法: public boolean ...
### 黑马程序员之Android:点击返回键退出程序的方法 在Android应用开发中,处理用户交互行为是一项重要的工作。特别是对于返回键的处理,合理的逻辑不仅能够提升用户体验,还能增加应用的专业度。本文将详细介绍两...
6. **组合多种方法**:为了提供更友好的用户体验,可以结合使用以上方法,例如先使用`finishAffinity()`清理当前Task,如果用户再次点击退出,则通过`System.exit(0)`或`killProcess()`彻底退出。 在实现退出应用...
在Android应用开发中,"点击两次退出程序"是一种常见的安全设计策略,它的目的是防止用户意外地关闭应用程序。这种设计通常会在用户首次点击退出按钮时显示一个提示,要求用户再次确认退出操作,以避免误触导致的...
在Android操作系统中,应用程序并不像桌面系统那样有一个明显的“退出”按钮来关闭程序。这是因为Android的设计理念是资源管理,系统会...而如何优雅地退出程序,则需要结合应用的具体需求和Android的最佳实践来权衡。