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.

  • 相关阅读:
    nanoPI kernel compile record
    Golang go get第三方库的坑
    Python解析Linux命令行
    Linux:dd命令
    Golang异常处理
    Golang自定义包导入
    Golang覆盖写入文件的小坑
    Golang数据类型总结及其转换
    ASP.NET学习之页面传值(8)_Application传值
    ASP.NET学习之页面传值(7)_Cookie传值
  • 原文地址:https://www.cnblogs.com/javacoding/p/5550443.html
Copyright © 2011-2022 走看看