android:configChanges="orientation|keyboardHidden"
这种方式无法直接为Actvitiy设定FLAG_ACTIVITY_CLEAR_TOP表示。
<activity
android:name=".MainActivity"
android:launchMode="singleTask" />
Intent中设置标志位
这种方式无法为Activity指定singleInstance模式。
Intent intent=new Intent(); intent.setClass(Main1Activity.class,SecondActivity.class); intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK); startActivity(intent);
<activity
android:name=".ui.LoginActivity"
android:configChanges="keyboardHidden|orientation|screenSize"
android:screenOrientation="portrait"
android:theme="@style/AppTheme.Transparent">
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
<data android:mimeType="text/plain"/>
</intent-filter>
</activity>
Intent中的action必须能够和过滤规则中的action匹配(字符串值完全一样),如果一个过滤规则中有多个action,那么只要Intent中的action能够匹配过滤规则中的任意一个action即可。
category的匹配规则:使用 Android:category 属性用来指定在什么样的环境下动作才被响应。
Intent中如果含有category,那么所有的category都必须和过滤规则中的其中一个categroy相同。
ALTERNATIVE
你将在这章的后面所看到的,一个 Intent Filter 的用途是使用动作来帮忙填入上下文菜单。 ALTERNATIVE 种类指定,在某种数据类型的项目上可以替代默认执行的动作。例如,一个联系人的默认动作时浏览它,替代的可能是去编辑或删除它。
SELECTED_ALTERNATIVE
与 ALTERNATIVE 类似,但 ALTERNATIVE 总是使用下面所述的 Intent 解析来指向单一的动作。SELECTED_ALTERNATIVE在需要一个可能性列表时使用。
BROWSABLE
指定在浏览器中的动作。当 Intent 在浏览器中被引发,都会被指定成 BROWSABLE 种类。
DEFAULT
设置这个种类来让组件成为 Intent Filter 中定义的 data 的默认动作。这对使用显式 Intent 启动的 Activity 来说也是必要的。
GADGET
通过设置 GADGET 种类,你可以指定这个 Activity 可以嵌入到其他的 Activity 来允许。
HOME
HOME Activity 是设备启动(登陆屏幕)时显示的第一个 Activity 。通过指定 Intent Filter 为 HOME 种类而不指定动作的话,你正在将其设为本地 home 画面的替代。
LAUNCHER
使用这个种类来让一个 Activity 作为应用程序的启动项。
data的匹配规则:允许你指定组件能作用的数据的匹配。