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>