随时结束程序

实验名称:随时结束程序

实验需求:back键可能需要按很多次,home键只是将程序暂时挂起

实验现象:在第3个活动

实验思路:设置一个专门的集合类对所有的活动进行管理。

步骤:

1、新建一个项目,创建3个活动,活动可以通过button切换

2、新建一个ActivityCollector类作为活动管理器

  1. public class ActivityCollector {
  2. public static List<Activity> activities=new ArrayList<>();
  3. public static void addActivity(Activity activity){
  4. activities.add(activity); //用于向list中添加活动
  5. }
  6. public static void removeActivity(Activity activity) {
  7. activities.remove(activity); //用于从list中移除活动
  8. }
  9. public static void finishAll() {
  10. for(Activity activity:activities){
  11. if(!activity.isFinishing()){
  12. activity.finish(); //将list中存储的活动全部销毁掉
  13. }
  14. }
  15. }
  16. }

3、新建一个BaseActivity作为项目中活动的继承类,

  1. public class BaseActivity extends AppCompatActivity{
  2. @Override
  3. protected void onCreate(Bundle savedInstanceState){ //获取实例的类名
  4. super.onCreate(savedInstanceState); //保存实例类名
  5. Log.d("BaseActivity",getClass().getSimpleName()); //打印
  6. ActivityCollector.addActivity(this); //调用ActivityCollerctor中的addActivity方法
  7. }
  8. //@Override
  9. protected void onDestory(){
  10. super.onDestroy();
  11. ActivityCollector.removeActivity(this);
  12. }
  13. }

4、修改第3个活动的按键事件

  1. @Override
  2. protected void onCreate(Bundle savedInstanceState) {
  3. super.onCreate(savedInstanceState);
  4. setContentView(R.layout.activity_main3);
  5. Button button=(Button) findViewById(R.id.button3);
  6. button.setOnClickListener(new View.OnClickListener() {
  7. @Override
  8. public void onClick(View view) {
  9. ActivityCollector.finishAll();//销毁该项目的所有活动
  10. }
  11. });
  12. }

5、运行程序

附件列表

     

    posted @ 2017-04-04 21:19  sky七月凉  阅读(220)  评论(0编辑  收藏  举报