我有一個小部件,可以在點擊時彈出小對話框。這些對話框由singleInstance launchMode中名爲RemoteActivity的活動顯示。在其中一個對話框中,有一個按鈕用於啓動具有標準launchMode的主應用程序MainActivity。如何從singleInstance活動開始活動?
但是,當單擊此按鈕並調用startActivity()時,雖然我可以在logcat中看到相應的「Starting activity:Intent {...}」,但未啓動MainActivity。
如果我將RemoteActivity的launchMode設置爲標準,那麼MainActivity會啓動,但這不是我想要的,RemoteActivity只是widget的擴展,我不希望它與任何其他活動堆疊。
我也試圖與FLAG_ACTIVITY_NEW_TASK,但它並沒有幫助,而且它不應該是必要的反正according to the docs:
A「singleInstance」活動,對 另一方面,允許沒有其他 活動成爲其任務的一部分。 這是該任務中唯一的活動。如果 它啓動另一個活動,那麼 活動被分配給不同的 任務 - 就好像FLAG_ACTIVITY_NEW_TASK 的意圖。
如何啓動我的主要活動?
UPDATE /勘誤表:
在MainActivity實際上推出,但只有當它是不是已經是任務的一部分。如果我通過啓動程序正常啓動MainActivity,然後按Back退出,則RemoteActivity會啓動MainActivity。
但是,如果不按下返回,我按Home離開MainActivity,然後RemoteActivity無法啓動MainActivity,儘管意圖出現在logcat中。
我在Froyo測試這個。
有什麼想法發生了什麼?
我剛剛試圖添加noHistory到RemoteActivity,它並沒有幫助。我不打算將它添加到MainActivity中,我不想要它,它必須是歷史的一部分。順便說一下,有一個微妙的,請參閱我的「更新」。 – olivierg 2011-04-27 13:44:59