对于一个单一的活动,按后退键,或者在活动中调用finish()方法,就可以将活动销毁,这里主要说一次销毁所有活动的方法。
1 写好一个管理activity的工具类
public class ActivityCollector {
public static List<Activity> activities=new ArrayList<>();
public static void add(Activity activity)
{
activities.add(activity);
}
public static void delete(Activity activity)
{
activities.remove(activity);
}
public static void exit()
{
for(Activity activity:activities)
{
//判断该activity是否已经被销毁了
if(activity.isFinishing())
{
activity.finish();
}
}
}
}
2 建立一个BaseActivity作为所有活动的父类,并重写他的onCreate和onDestory方法,同时不要忘记super方法,不加super方法会有错误。
public class BaseActivity extends Activity {
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
//在活动创建时将该活动添加到list中
ActivityCollector.add(this);
}
@Override
protected void onDestroy() {
super.onDestroy();
//在活动销毁时将该活动移除list
ActivityCollector.delete(this);
}
}
3 每一个活动都要继承BaseActivity,并在onCreate中调用super.onCreate,在onDestory中调用super.onDestory
public class testActivity extends Activity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_test);
}
@Override
protected void onDestroy() {
super.onDestroy();
}
}
4 退出所有活动的方法
在需要的地方调用ActivityCollector.exit(),就可以退出所有的活动
ActivityCollector.exit()