1.用广播监听器/service等非Activity的Context打开Activity
要增加Flag:
intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
不然会报RuntimeException.
从广播监听器打开Activity,不会跟已有的activity处于同一TASK导致带出原有的activity,要增加Flag
典型应用:intent.addFlags(Intent.FLAG_ACTIVITY_MULTIPLE_TASK);
如果应用已经隐藏在后台。这种情况下你想在广播监听器中打开一个dialog风格的activity,如果没有加FLAG_ACTIVITY_MULTIPLE_TASK,会导致打开的dialog下面出现已经隐藏在后台的应用Activity。
2.让你的Activity出现在选择打开联系人的默认程序列表中
要想让你的Activtiy像QQ通讯录一样,在用于使用其他应用的打开系统通讯录功能弹出的选择应用窗中出现,需要在你的Activity中增加以下内容:
<intent-filter>
<action android:name="android.intent.action.VIEW">
</action>
<category android:name="android.intent.category.DEFAULT">
</category>
<data android:mimeType="vnd.android.cursor.dir/person"
android:host="contacts">
</data>
<data android:mimeType="vnd.android.cursor.dir/contact"
android:host="com.android.contacts">
</data>
</intent-filter>