1、描述
如果目前界面还停留在之前的界面上,会法相当要退出程序是非常不方便的,Home键只能把程序挂起,并没有退出程序。
解决这个有几个方法可以进行考虑
2、第一种方法
使用一个专门的集合类对所有的activity进行管理
pubic class ActivityCollector{
public static List<Activity> activities = new ArraryList<Activity>();
public static void addActivity(Activity activity){
activities.add(activity);
}
public static void removeActivity(Activity activity){
activities.remove(activity); }
public static void finishAll(){
for(Activity activity : activities){
if(!activity.isFinishing()){
activity.finish();
}
}
}
}
在每个Activity的OnCreate方法当中该Activity加入到List当中,在onDestory当中异常,若要关闭所有的则执行finishAll即可。
public class BaseActivity extends Activity{
@Override
protected void onCreate(Bundle saveInstanceState){
super.onCreate(saveInStanceState);
Log.d("BaseActivity",getClass.getSimpleName());
ActivityCollector.addActivity(this);//添加进入
}
@Override
protected void onDestory(){
super.onDestory();
ActivityCollector.removeActivity(this);//移除
}
}
3、第二种方法
在每个Activity当中使用广播接收器,在关闭程序时发送全部本地广播,让每个Activity的自行关闭