Android程序的退出终于完美解决,兼容所有SDK
2012-11-27 09:17
399 查看
上网学了好多方法,关于Android的Activity如何退出。好多方法都不行啦,试了各种方法,下面这种方法就是我最喜欢的,简单又容易懂。
使用单例模式创建一个Activity管理对象,该对象中有一个Activity容器(具体实现自己处理,使用LinkedList等)专门负责存储新开启的每一个Activity,并且容易理解、易于操作,非常不错!
MyApplication类(储存每一个Activity,并实现关闭所有Activity的操作
Java代码
![](https://oscdn.geek-share.com/Uploads/Images/Content/201910/29/2e3d6190e4e75b17e8f677a864de063f.gif)
![](https://oscdn.geek-share.com/Uploads/Images/Content/201910/29/57c1ea48a7c0d3164fcc6c3297614614.png)
![](https://oscdn.geek-share.com/Uploads/Images/Content/201910/29/5d658a29f5ead68cc5350ff5b8b80c65.gif)
public class MyApplication extends Application {
private List<Activity> activityList = new LinkedList<Activity>();
private static MyApplication instance;
private MyApplication()
{
}
//单例模式中获取唯一的MyApplication实例
public static MyApplication getInstance()
{
if(null == instance)
{
instance = new MyApplication();
}
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);
}
}
在每一个Activity中的onCreate方法里添加该Activity到MyApplication对象实例容器中
Java代码
![](https://oscdn.geek-share.com/Uploads/Images/Content/201910/29/2e3d6190e4e75b17e8f677a864de063f.gif)
![](https://oscdn.geek-share.com/Uploads/Images/Content/201910/29/57c1ea48a7c0d3164fcc6c3297614614.png)
![](https://oscdn.geek-share.com/Uploads/Images/Content/201910/29/5d658a29f5ead68cc5350ff5b8b80c65.gif)
MyApplication.getInstance().addActivity(this);
在需要结束所有Activity的时候调用exit方法
Java代码
![](https://oscdn.geek-share.com/Uploads/Images/Content/201910/29/2e3d6190e4e75b17e8f677a864de063f.gif)
![](https://oscdn.geek-share.com/Uploads/Images/Content/201910/29/57c1ea48a7c0d3164fcc6c3297614614.png)
![](https://oscdn.geek-share.com/Uploads/Images/Content/201910/29/5d658a29f5ead68cc5350ff5b8b80c65.gif)
MyApplication.getInstance().exit();
使用单例模式创建一个Activity管理对象,该对象中有一个Activity容器(具体实现自己处理,使用LinkedList等)专门负责存储新开启的每一个Activity,并且容易理解、易于操作,非常不错!
MyApplication类(储存每一个Activity,并实现关闭所有Activity的操作
Java代码
![](https://oscdn.geek-share.com/Uploads/Images/Content/201910/29/2e3d6190e4e75b17e8f677a864de063f.gif)
![](https://oscdn.geek-share.com/Uploads/Images/Content/201910/29/57c1ea48a7c0d3164fcc6c3297614614.png)
![](https://oscdn.geek-share.com/Uploads/Images/Content/201910/29/5d658a29f5ead68cc5350ff5b8b80c65.gif)
public class MyApplication extends Application {
private List<Activity> activityList = new LinkedList<Activity>();
private static MyApplication instance;
private MyApplication()
{
}
//单例模式中获取唯一的MyApplication实例
public static MyApplication getInstance()
{
if(null == instance)
{
instance = new MyApplication();
}
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);
}
}
public class MyApplication extends Application { private List<Activity> activityList = new LinkedList<Activity>(); private static MyApplication instance; private MyApplication() { } //单例模式中获取唯一的MyApplication实例 public static MyApplication getInstance() { if(null == instance) { instance = new MyApplication(); } 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); } }
在每一个Activity中的onCreate方法里添加该Activity到MyApplication对象实例容器中
Java代码
![](https://oscdn.geek-share.com/Uploads/Images/Content/201910/29/2e3d6190e4e75b17e8f677a864de063f.gif)
![](https://oscdn.geek-share.com/Uploads/Images/Content/201910/29/57c1ea48a7c0d3164fcc6c3297614614.png)
![](https://oscdn.geek-share.com/Uploads/Images/Content/201910/29/5d658a29f5ead68cc5350ff5b8b80c65.gif)
MyApplication.getInstance().addActivity(this);
MyApplication.getInstance().addActivity(this);
在需要结束所有Activity的时候调用exit方法
Java代码
![](https://oscdn.geek-share.com/Uploads/Images/Content/201910/29/2e3d6190e4e75b17e8f677a864de063f.gif)
![](https://oscdn.geek-share.com/Uploads/Images/Content/201910/29/57c1ea48a7c0d3164fcc6c3297614614.png)
![](https://oscdn.geek-share.com/Uploads/Images/Content/201910/29/5d658a29f5ead68cc5350ff5b8b80c65.gif)
MyApplication.getInstance().exit();
相关文章推荐
- Android程序的退出终于完美解决,兼容所有SDK
- Android程序的完美退出(兼容所有SDK )
- 完美退出Android程序(兼容所有SDK)
- Android程序退出完美解决方案兼容所有SDK
- Android程序退出完美解决方案兼容所有SDK
- Android程序的完美退出(兼容所有SDK )
- Android程序的退出终于完美解决
- Android在web view下点击返回键直接退出程序完美解决
- 【Android开发】完美解决Android完全退出程序
- android完美退出程序(创建单例管理所有打开的activity)
- 完美解决Android完全退出程序(转)
- 调用Android系统应用时解决SDK不兼容问题
- Android 下Qt 多层窗口关闭时程序退出的问题 解决
- Android_app完美退出程序
- Android SDK Manager不能显示所有包的解决办法
- Android_ 重写系统Crash处理类,保存Crash信息到SD卡 和 完美退出程序的方法
- android完美退出程序
- 完美解决Android SDK Manager无法更新
- android 退出程序解决内存释放的问题