• 随时随地退出程序


    新建一个ActivityCollector类作为活动管理器,代码如下

    package com.qihui.myapplication10;
    
    import android.app.Activity;
    
    import java.util.ArrayList;
    import java.util.List;
    
    /**
     * Created by qihui on 2018/8/27.
     */
    
    public class ActivityCollector {
        public static List<Activity> activities=new ArrayList<>();
        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();
                }
            }
            activities.clear();
        }
    }
    

      在管理器中,我们通过一个List来暂存活动,然后提供了一个addActivity()方法用于向List中添加活动,提供了一个removeActivity()方法用于从List中移除活动,最后提供一个finishAll()方法用于将List中存储的活动全部销毁掉。

    下面是BackActivity中的代码

    package com.qihui.myapplication10;
    
    import android.os.Bundle;
    import android.support.v7.app.AppCompatActivity;
    import android.util.Log;
    
    /**
     * Created by qihui on 2018/8/27.
     */
    
    public class BaseActivity extends AppCompatActivity {
    
        @Override
        protected void onCreate(Bundle savedInstanceState){
            super.onCreate(savedInstanceState);
            Log.d("BaseActivity","dangqianactivity"+getClass().getSimpleName());
            ActivityCollector.addActivity(this);
             }
        @Override
        protected void onDestroy(){
            super.onDestroy();
            ActivityCollector.removeActivity(this);
        }
    }
    

      在BaseActivity的onCreate()方法中调用ActivityCollector的addActivity()方法,表明将当前正在创建的活动添加到活动管理器中。然后,在BaseActivity中重写onDestroy()方法,并调用ActivityCollector的removeActivity()方法,表明将一个马上要销毁的活动从活动管理器里移除。

    从此以后,不管你在什么地方退出程序,只需要调用ActivityCollector.finishAll();方法就可以了。

    可以加上杀掉当前进程的代码,保证程序完全退出,代码如下

    android.os.Process.killProcess(android.os.Process.myPid());

    其中,killProcess()方法用于杀掉一个进程,它接收一个进程id参数,我们可以通过myPid()方法来获取当前程序的进程id,注意,killProcess()方法只能用于杀掉当前程序的进程,我们不能使用此方法杀掉其他程序。

  • 相关阅读:
    日志记录
    Ajax
    servlet3.0新特性
    文件上传和下载
    过滤器
    listener
    JavaWeb案例:登陆和注册
    jsp
    cookie和session
    HttpRequest,HttpResponse,乱码,转发和重定向
  • 原文地址:https://www.cnblogs.com/huichao1314/p/9543891.html
Copyright © 2020-2023  润新知