zoukankan      html  css  js  c++  java
  • android中活动的启动模式

    活动的启动模式

    1.standard

    2.singleTop

    3.singleTask

    4.singleInstance

    standard为默认的活动启动模式(无论活动是否在栈顶,都会创建一个新的活动)

    sing了Top(如何栈顶有了新的活动就不会创建新的活动,会直接使用已经存在的活动)

    singleTask(可以解决重复创建栈顶活动的问题,创建新的活动之前会检查是否活动已经存在,若存在就把该活动之前的活动全部清出栈,将该活动显示在栈顶,否则就创建一个新的活动)

    singleInstance(该活动主要用于实现单个活动被多个程序同时调用的情况,即实现共享活动的问题)

    活动高级的技巧使用

     确定某个具体的活动,建立一个BaseActivity去继承Activity,,然后每个新的活动都去继承BaseActivity这个类

    public class BaseActivity extends Activity {

            

        @Override

        protected void onCreate(Bundle savedInstanceState) {

             super.onCreate(savedInstanceState);

             Log.d("BaseActivity", getClass().getSimpleName());   //打印出具体的某个活动名称

        }

       

    }

     

     

    随时随地地退出程序

    新建一个类作为活动管理器

    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该类

    public class BaseActivity extends Activity {

     

        @Override

        protected void onCreate(Bundle savedInstanceState) {

             super.onCreate(savedInstanceState);

             Log.d("BaseActivity", getClass().getSimpleName());

             ActivityCollector.addActivity(this);  //每次活动都添加到管理器当中去

        }

       

        @Override

        protected void onDestroy() {

             super.onDestroy();

             ActivityCollector.removeActivity(this);

        }

       

    }

     

    最后在要调用的方面的使用ActivityCollector.finishAll()方法即可。。。

     

    经验总结:来自书籍《android第一行代码》

  • 相关阅读:
    html基础进阶笔记
    程序员的自我提升
    过滤思路
    for循环
    jeesite在生成主子表代码的时候在eclipse里面没有子表代码
    java学习笔记2
    人性的弱点
    java学习笔记
    Percona Toolkit 安装使用
    mysql 中查询当天、本周,本月,上一个月的数据
  • 原文地址:https://www.cnblogs.com/anumbrella/p/4540612.html
Copyright © 2011-2022 走看看