为什么要合理的的管理Activity呢?相比不用多说了吧!
我们在代码中经常写各种activity,对用Activity的管理经常凌乱,经常忘记释放资源,或者对多个activity要一次关闭,那么在每一个activity中写finsh(),或者递归关闭,相对都比较烦,既然非得这个干,那么干嘛不知道偷个懒,写个管理类,直接管理,多方便,看代码!
1 .创建一个Activity的管理类:
package com.example.offlinebroadcastreceiver;import android.app.Activity;import java.util.ArrayList;/*** Activity的管理类* Created by xuzuowei*/public class ActivityCollector {static ArrayList list = new ArrayList();/*** 增加Activity到集合的方法* @param activity*/public static void addActivity(Activity activity){list.add(activity);}/*** 从集合中移除Activity的方法* @param activity*/public static void remove(Activity activity){list.remove(activity);}/*** 循环finsh所有的Activity的方法*/public static void finshActivity(){for (Activity activity :list)if (!activity.isFinishing())activity.finish();}
}
2 . 一般情况我们都会写一个Activity的基类,用来初始化一些东西,而我们这个ActivityCollector的类也需要在BaseActivity中使用,代码如下:
public class BaseActivity extends AppCompatActivity {private OfflineReceiver offlineReceiver;@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);ActivityCollector.addActivity(this);}@Overrideprotected void onDestroy() {ActivityCollector.remove(this);super.onDestroy();}
}
3 . 在需要关闭所有Activity的代码中添加如下代码:
ActivityCollector.finshActivity()
4 . 当然了如果只是关闭某一个Activity话,那么咱还是老老实实的写一个finish();简单实用不花哨,哈哈