实验名称:随时结束程序
实验需求:back键可能需要按很多次,home键只是将程序暂时挂起
实验现象:在第3个活动
实验思路:设置一个专门的集合类对所有的活动进行管理。
步骤:
1、新建一个项目,创建3个活动,活动可以通过button切换
![]()
![]()
2、新建一个ActivityCollector类作为活动管理器
public class ActivityCollector { public static List<Activity> activities=new ArrayList<>(); public static void addActivity(Activity activity){ activities.add(activity); //用于向list中添加活动 } public static void removeActivity(Activity activity) { activities.remove(activity); //用于从list中移除活动 } public static void finishAll() { for(Activity activity:activities){ if(!activity.isFinishing()){ activity.finish(); //将list中存储的活动全部销毁掉 } } }}
3、新建一个BaseActivity作为项目中活动的继承类,
public class BaseActivity extends AppCompatActivity{ @Override protected void onCreate(Bundle savedInstanceState){ //获取实例的类名 super.onCreate(savedInstanceState); //保存实例类名 Log.d("BaseActivity",getClass().getSimpleName()); //打印 ActivityCollector.addActivity(this); //调用ActivityCollerctor中的addActivity方法 } //@Override protected void onDestory(){ super.onDestroy(); ActivityCollector.removeActivity(this); }}
4、修改第3个活动的按键事件
@Overrideprotected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main3); Button button=(Button) findViewById(R.id.button3); button.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View view) { ActivityCollector.finishAll();//销毁该项目的所有活动 } });}
5、运行程序