• 随时结束程序


    实验名称:随时结束程序

    实验需求: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、运行程序

    附件列表

    • 相关阅读:
      Linux搭建iscsi服务,客户端(Linux&Win XP)挂载使用
      SecucreCRT安装与破解
      最全的HCIA-R&S实验笔记
      AtCoder Grand Contest 036
      Comet OJ CCPC-Wannafly & Comet OJ 夏季欢乐赛(2019)
      2019慈溪集训小记
      Codeforces Round #573 (Div. 1)
      Comet OJ
      Codeforces Round #576 (Div. 1)
      Codechef August Challenge 2019 Division 2
    • 原文地址:https://www.cnblogs.com/aqyl/p/6666515.html
    Copyright © 2020-2023  润新知