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第一行代码》

 

郑重声明:本站内容如果来自互联网及其他传播媒体,其版权均属原媒体及文章作者所有。转载目的在于传递更多信息及用于网络分享,并不代表本站赞同其观点和对其真实性负责,也不构成任何其他建议。