zoukankan      html  css  js  c++  java
  • Android 随时随地的退出程序

    1.建立一个ActivityCollector来管理所有的Activity

    public class ActivityCollector {
        public static List<Activity> activities = new ArrayList<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();
                }
            }
        }
    };

    新建一个BaseActivity继承Activity,调用控制器的方法

    public class BaseActivity  extends Activity {
        @Override
        protected void onCreate(Bundle savedInstanceState){
            super.onCreate(savedInstanceState);
            Log.d("BaseActivity", getClass().getSimpleName());
            ActivityCollector.addActivity(this);
        }
        @Override
        public void onDestroy(){
            super.onDestroy();
            ActivityCollector.removeActivity(this);
        }
    }

    让所有的Activity都继承这个基类,并绑定按钮调用ActivityCollector.finishAll()方法

    比如在Main2Activity里

    public class Main2Activity extends BaseActivity {
    
        @Override
        protected void onCreate(Bundle savedInstanceState) {
            super.onCreate(savedInstanceState);
            Log.d("ThirdActivity", "Task id is " + getTaskId());
            requestWindowFeature(Window.FEATURE_NO_TITLE);
            setContentView(R.layout.activity_main2);
            Button button3 = (Button) findViewById(R.id.button3);
            button3.setOnClickListener(new View.OnClickListener()
            {
                @Override
                public void onClick(View v)
                {
                    ActivityCollector.finishAll();
                    //android.os.Process.killProcess(android.os.Process.myPid());
                }
            });
        }

    这样,我们在第二个Activity中点击Button3,便可以退出所有的Activity.

  • 相关阅读:
    CRC全套算法 CRC4,CRC5,CRC7,CRC8,CRC16,CRC32,CRC32 mpeg-2
    ubuntu18.04使用vscode报pylint is not install错误
    [转]C结构体之位域(位段/位域)
    获取gcc和clang的内置宏定义
    Win10下使用MinGW到指定路径编译C-C++文件
    【YM】ssh命令 远程登录Linux
    Linux环境下搭建Qt5.9开发环境
    WSL-Ubuntu-更换apt源为阿里源
    git常用命令
    Lucene的基本使用
  • 原文地址:https://www.cnblogs.com/javacoding/p/5550443.html
Copyright © 2011-2022 走看看