活动的启动模式对我们来说是个新的概念,在实际项目中我们会根据活动的需求为每个活动指定恰当的启动模式。共分为四种分别是:standard,singletop,singletast,singleinstance,可以在androidMainfest.xml中进得指定,android:launchModel属性来选择启动查式。
Standard(标准):从字面就可能看得出这个是标新准的启动模式,在不进行显示指定的情况下,都是这种模式。在这个模式下每当启动一个新的活动时,它就会压入栈的顶部,而不去管这个少动之前是否已经在栈中,有点浪费资源。
SingleTop:在有些情况下用“标准模式”不太合适。活动已经在栈中了,为何还要再启动一个新的,直接更改它在栈中的位置即可。于是就有了singleTop,这个模式也和上面差不多,只是多了一个判断,判断活动是否在栈的顶部,如果存在,就不再创建新的。反之如果不再栈的顶部,那还是后启用一个新的活动。
SingleTast:这个是为弥补singletop而来的,如果活动不在栈的顶部,但是存在栈中,就直接将位置移动到栈的顶部。
SingleInstance这个最为复杂,指定为这个模式会启用一个新的栈来管理这个活动,假设我们有一个活动允许其他程序调用,共享数据,这种方式无疑是最好的。
活动的启动的最佳写法,我们可以通过intent来构建出当前的“意图”,然后来调用startActivity()或startActivityForResult()方法将活动启动起来,我们可以用下面的方式来写:
pubilc static void actionStart(Context context,String data1,String data2)
{
Intent intent=new Intent(context,SecondActivity.cass);
intent.putExtra("param1",data1);
intent.putExtra("param1",data2);
context.startActivity(intent);
}
这个方法完成Intent的构建,另外所有的SecondActivity中需要的数据都是通过actionStart来进行传递的,这样的好处就是灵活性增高了,启动代码也可以简写了成:
SecondActivity.actonStart(FiresActivity.this,"data1","data2");