launchMode&taskAffinity

2018-03-08  本文已影响12人  鲁西西z

1、设置一个launchMode

一般地,我们可以直接在AndroidManifest.xml <activity>标签的一个属性中设置launchMode,如下:

<activity
        android:name=".SingleTaskActivity"
        android:label="singleTask launchMode"
        android:launchMode="singleTask">

singleTop,singleTask,singleInstance,如果不需要创建新的实例(不调用onCreate),则会调用onNewIntent,当调用到onNewIntent(intent)的时候,需要在onNewIntent() 中使用setIntent(intent)赋值给Activity的Intent.否则,后续的getIntent()都是得到老的Intent。

2、Intent Flags

当开启一个activity时,可以通过在intent中包含标志来修改activity的默认的与当前task的关联,然后将该intent传递给startActivity().可以修改的默认的标志为:

 FLAG_ACTIVITY_NEW_TASK
 FLAG_ACTIVITY_SINGLE_TOP
 FLAG_ACTIVITY_CLEAR_TOP
 FLAG_ACTIVITY_REORDER_TO_FRONT
    Intent intent = new Intent(this, B.class);    
    intent.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);   
    startActivity(intent);  
    Intent intent = new Intent(this, MainActivity.class);   
    intent.addFlags(Intent.FLAG_ACTIVITY_REORDER_TO_FRONT);    
    startActivity(intent);  

3、taskAffinity

在官方文档中可以得到关于taskAffinity的以下信息:

http://blog.csdn.net/zhangjg_blog/article/details/10923643

上一篇 下一篇

猜你喜欢

热点阅读