安卓学习之--如何关闭所有的activity
根據Activity的聲明周期?
方法1
?? 我們知道Android的窗口類提供了歷史棧,我們可以通過stack的原理來巧妙的實現,這里我們在A窗口打開B窗口時在Intent中直接加入標志 Intent.FLAG_ACTIVITY_CLEAR_TOP,這樣開啟B時將會清除該進程空間的所有Activity。?
在A窗口中使用下面的代碼調用B窗口?
Java代碼?
Intent intent = new Intent();?
intent.setClass(Android123.this, CWJ.class);?
intent.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);? //注意本行的FLAG設置?
startActivity(intent)?
?
方法2:?
在調用退出方法中寫上
MyApplication.getInstance().exit();
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
? ? ? ? /*
? ? ? ???* 在每一個Activity中的onCreate方法里添加該Activity到MyApplication對象實例容器中
? ? ? ???*?
? ? ? ???* MyApplication.getInstance().addActivity(this);
? ? ? ???*?
? ? ? ???* 在需要結束所有Activity的時候調用exit方法
? ? ? ???*?
? ? ? ???* MyApplication.getInstance().exit();
? ? ? ???*/
? ? ? ? public void exit() {
? ? ? ? ? ? ? ? for (Activity activity : activityList) {
? ? ? ? ? ? ? ? ? ? ? ? activity.finish();
? ? ? ? ? ? ? ? }
? ? ? ? ? ? ? ? System.exit(0);
? ? ? ? }
轉載于:https://www.cnblogs.com/meetweb/archive/2012/12/22/2829046.html
總結
以上是生活随笔為你收集整理的安卓学习之--如何关闭所有的activity的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: (转)iOS 6的Rotation--详
- 下一篇: 如何实现DataGridView实时更新