在Android应用开发中,会存在用户退出登录的功能,即退出登录之后销毁之前所有的Activity并跳转到登录界面,此时点击返回键就会退出该应用。
下面只需要考虑如何销毁之前所有的Activity即可。
可以使用一个集合,在每一个Activity创建的时候将其添加到集合中。但是这样会比较麻烦,可以抽取一个BaseActivity出来,在onCreate()方法中进行添加,让其他Activity继承 BaseActivity。这样就省事多了。然后在退出登录的时候循环遍历集合,调用其finish()方法关闭Activity。
代码如下:
public class ActivityCollectorUtil {
public static ArrayList<Activity> mActivityList = new ArrayList<Activity>();
/**
* onCreate()时添加
* @param activity
*/
public static void addActivity(Activity activity){
//判断集合中是否已经添加,添加过的则不再添加
if (!mActivityList.contains(activity)){
mActivityList.add(activity);
}
}
/**
* onDestroy()时删除
* @param activity
*/
public static void removeActivity(Activity activity){
mActivityList.remove(activity);
}
/**
* 关闭所有Activity
*/
public static void finishAllActivity(){
for (Activity activity : mActivityList){
if (!activity.isFinishing()){
activity.finish();
}
}
}
}
这个工具类使用就比较简单了,只需要在 onCreate()时调用 addActivity()方法,在 onDestroy()时调用removeActivity()方法 。
退出登录的时候调用finishAllActivity()方法即可。
这样退出登录功能就大功告成了。