关于android程序完全退出的问题
2014-01-15 08:20
344 查看
android 退出应用程序会调用android.os.Process.killProcess(android.os.Process.myPid())
或是System.exit(0),这只是针对第一个Activity(也就是入口的Activity)时生效。
如果有A,B,C
三个Activity,而想在B 或C 中Activity 退出,调用上面的方法,往往会销毁当前的Activity 返回上
一个Activity。当然也可以逐个返回上一个Activity,直到跳转到入口的Activity,最后退出应用程
序。但这样比较麻烦,而且逐个返回的体验并不友好。
比较合理的方案是:
写一个ExitApplication 类,利用单例模式管理Activity,在每个在
Activity 的onCreate()方法中调用ExitApplication.getInstance().addActivity(this)方法,在退
出时调用ExitApplication.getInstance().exit()方法,就可以完全退出应用程序了。
view plaincopy to clipboardprint?
import java.util.LinkedList;
import java.util.List;
import android.app.Activity;
import android.app.Application;
public class ExitApplication extends Application {
private List<Activity> activityList=new LinkedList<Activity>();
private static ExitApplication instance;
private ExitApplication()
{
}
//单例模式中获取唯一的ExitApplication 实例
public static ExitApplication getInstance()
{
if(null == instance)
{
instance = new ExitApplication();
}
return instance;
}
//添加Activity 到容器中
public void addActivity(Activity activity)
{
activityList.add(activity);
}
//遍历所有Activity 并finish
public void exit()
{
for(Activity activity:activityList)
{
activity.finish();
}
System.exit(0);
}
}
或是System.exit(0),这只是针对第一个Activity(也就是入口的Activity)时生效。
如果有A,B,C
三个Activity,而想在B 或C 中Activity 退出,调用上面的方法,往往会销毁当前的Activity 返回上
一个Activity。当然也可以逐个返回上一个Activity,直到跳转到入口的Activity,最后退出应用程
序。但这样比较麻烦,而且逐个返回的体验并不友好。
比较合理的方案是:
写一个ExitApplication 类,利用单例模式管理Activity,在每个在
Activity 的onCreate()方法中调用ExitApplication.getInstance().addActivity(this)方法,在退
出时调用ExitApplication.getInstance().exit()方法,就可以完全退出应用程序了。
view plaincopy to clipboardprint?
import java.util.LinkedList;
import java.util.List;
import android.app.Activity;
import android.app.Application;
public class ExitApplication extends Application {
private List<Activity> activityList=new LinkedList<Activity>();
private static ExitApplication instance;
private ExitApplication()
{
}
//单例模式中获取唯一的ExitApplication 实例
public static ExitApplication getInstance()
{
if(null == instance)
{
instance = new ExitApplication();
}
return instance;
}
//添加Activity 到容器中
public void addActivity(Activity activity)
{
activityList.add(activity);
}
//遍历所有Activity 并finish
public void exit()
{
for(Activity activity:activityList)
{
activity.finish();
}
System.exit(0);
}
}
相关文章推荐
- 关于程序退出无法关闭所有界面问题 通过广播使Android程序完全退出
- 关于Android完全退出程序
- 关于Android程序退出后内存释放的问题
- 关于Android退出程序的问题(在主页面或任意页面退出App)
- 关于android 多个Activity应用程序按返回键退出程序问题
- 关于android 多个Activity应用程序按返回键退出程序问题
- Android完全退出程序问题综述
- 关于Android程序退出后内存释放的问题
- 关于Android点击物理返回键退出程序的问题
- Android开发中完全退出程序的三种方法
- 关于android程序编写初级逻辑思考问题
- 关于android应用程序使用ActivityManager退出的问题
- Android程序完全退出的三种方法
- Android完全退出程序
- Android程序如何在任意处完全退出应用
- android 完全退出程序
- Android按返回键程序仍在后台运行,并未完全退出和销毁,类似微信QQ等退出方式的实现-- moveTaskToBack
- Android完全结束Activity并退出程序
- 关于在Android工程中新添加了一个Activity 而程序崩溃的问题
- Android中实现程序的完全退出登录