//定义map,保存启动的 activitys
public class ActHelper {
private static HashMap<String, Activity> map = new HashMap<String, Activity>();
public static void addActivity(Activity activity) {
map.put(activity.getClass().getSimpleName(), activity);
}
public static void removeActivity(Activity activity) {
map.remove(activity.getClass().getSimpleName());
}
public static void finishAll() {
for (String key : map.keySet()) {
Activity activity = map.get(key);
if (!activity.isFinishing()) {
activity.finish();
}
}
}
public static void finishThis(Class clas) {
String str = clas.getSimpleName();
if (map.containsKey(str)) {
Activity activity = map.get(str);
if (!activity.isFinishing()) {
activity.finish();
}
}
}
public static void finishExcept(Class... clas) {
for (int i = 0; i < clas.length; i++) {
String str = clas[i].getSimpleName();
if (map.containsKey(str)) {
map.remove(str);
}
}
finishAll();
}
}
系统内存不足时,会主动销毁activity
//onRestoreInstanceState()会在onStart()和onResume()之间执行或者在oncreat方法中判断
//只有在activity销毁重建的时候,才会调用
@Override
protected void onRestoreInstanceState(Bundle savedInstanceState) {
super.onRestoreInstanceState(savedInstanceState);
}
// 会在 onStop()方法调用之前 调用该方法,保存当前状态
//当用户主动销毁activity,如按back键,或直接执行finish(),不会执行
//遇到意外情况(内存不足,用户直接按home键)由系统直接销毁一个Activity时,就会调用
@Override
public void onSaveInstanceState(Bundle outState, PersistableBundle outPersistentState) {
super.onSaveInstanceState(outState, outPersistentState);
}
转载请注明原文地址: https://ju.6miu.com/read-1202639.html