喜糖

移动开发工程师 。涉及 android、ios、jni

导航

【一找客户端】退出应用时,关闭所有activity

Posted on 2011-09-22 11:52  喜糖  阅读(826)  评论(0编辑  收藏  举报

在android中,Activity的生命周期一般是由系统进行控制的,即使我们能手都的进行finish()。 就利用这一点,来实现本文的功能。

在退出整个应用的时候,关闭所有activity。

多了不在说,都比较简单。 上代码,一看就懂。

/**
* activity管理器
*
@author suntony
*
*/
public class ATManager {

//acticity打开列表
private static List<Activity> activityList = new LinkedList<Activity>();

public static void addActivity(Activity activity){
activityList.add(activity);
Log.d(Const.TAG, "ATManager.addActivity|activity="+activity+",activityList size="+activityList.size());
}

/**
* 退出应用
*
@param context
*/
public static void exitClient(Context context){
for(int i=0; i < activityList.size(); i++){
//如果某个activity已经被系统回收,他就为null了。
if(null!=activityList.get(i)){
//否则,手动调用关闭。
activityList.get(i).finish();
}
}

ActivityManager activityManager = (ActivityManager)context.getSystemService(Context.ACTIVITY_SERVICE);

int version = 0;

//获得系统版本
if(Build.VERSION.SDK!=null){
version = Integer.parseInt(Build.VERSION.SDK);
}

if(version < 8){
activityManager.restartPackage("com.yizhao.activity");
System.exit(0);
}else{
Log.d(Const.TAG, "version error, exit system fail!");
}
}

}

代码使用注意:

  • 在每一处启动activity的地方都要调用addActivity方法。
  • 在退出的地方调用exitClient方法。

PS: 追后,还是附上【一找客户端】工程代码。注意查看代码:ATManager。