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