退出系統時 如何關閉所有Activity 避免無法退出

相信大家在開發一個Android應用的時候  稍微負責一點的項目  (就說是很多個Activity)

當然常規的就是沒啓動一個activity就finish一個,最後要在退出程序的事件裏system.exit(0) 或者  其他的什麼殺進程的方式退出就好

但是比如遇見 用startActivityForReuslt();啓動一個Activity的時候 (當然有時候可以不用這種方式)

就說在這種方式的時候吧,你就不能調用Finish去結束一個activity 這時候應用就會保留對這個Activity的引用

導致無法退出程序(退出程序時候返回應用的某一個界面)

所以我們按照這種思路  讓我們自己可以對Activity的引用進行控制

所以,廢話不多說,上代碼,代碼纔是最好的老師:

1.
/**
 * 退出應用
 * @author Administrator
 *
 */
public class CloseActivity
Helper {


public static List<Activity> activityList = new ArrayList<Activity>();
 
 public static void exitClient(Context ctx)
 {
  // 關閉所有Activity
  for (int i = 0; i < activityList.size(); i++)
  {
    if (null != activityList.get(i))
    {
      activityList.get(i).finish();
    }
  }
  ActivityManager activityMgr = (ActivityManager) ctx.getSystemService(Context.ACTIVITY_SERVICE );
  activityMgr.restartPackage(ctx.getPackageName());
  System.exit(0);
 }
}

2.在AndroidMainfest.xml 文件中配置  <uses-permission android:name="android.permission.KILL_BACKGROUND_PROCESSES"/>
3.使用
a:每一個Activity的onCreate(Bundle savedInstanceState)方法中 CloseActivityHelper.activityList.add(this);
b:應用退出時: CloseActivityHelperexitClient(this);
收工!

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章