2011-10-13 27 views
4

我有一個啓動一個活動的通知。長按home鍵並選擇我的應用程序後,我要重新開始我的主要活動,而不是這個活動的通知開始。我試着用FLAG_ACTIVITY_EXCLUDE_FROM_RECENTS,但是這打消了我從最近用過整個應用程序,這不是我想達到的目標。我怎樣才能讓我的應用程序在最近,但主要活動開始了?FLAG_ACTIVITY_EXCLUDE_FROM_RECENTS排除整個應用程序,不僅活動

Regards

回答

11

好吧,我找到了解決我的問題。我從FLAG_ACTIVITY_NEW_TASK開始了通知活動。但在我看來,如果親和力與默認親和力不同,則此活動僅在自己的任務中開始。所以我必須在清單中添加不同的親和力。

它似乎FLAG_ACTIVITY_EXCLUDE_FROM_RECENTS不(如記錄)exlucde活動從最近用過的,而它排除該活動會從[最近啓動了整個任務(而不是整個應用程序)。因爲我沒有設置不同的親和力,所以我想排除的Activity開始於同一任務(儘管我設置了FLAG_ACTIVITY_NEW_TASK),所以我的整個應用程序(因爲它只運行在一個任務中)被排除在最後。

現在我已經爲從通知開始的活動設置了不同的關聯關係,並以FLAG_ACTIVITY_NEW_TASK | FLAG_ACTIVITY_EXCLUDE_FROM_RECENTS開頭。當我離開此活動並長按HOME按鈕時,我可以選擇我的應用程序,並且默認任務已啓動或置於前端。

如果這是錯的就是我上面提到的,隨意把它清除掉...

+0

謝謝,這與我遇到的問題類似 - 你是如何改變任務的親和力的? –

+2

對於任何未來發現此問題的人,只是回答了我自己的問題:在清單集android:taskAffinity =「com.yourpackage.YourActivity」' –

+0

如果說home按鈕被按下,活動會自行銷燬嗎?因爲現在通知活動永遠不會導航回 – Kushan

1

我不清楚你想要什麼。

「我怎麼能有我在最近用過的應用程序,但有主要活動 開始了嗎?」

如果您想要始終使用長時間的家庭新聞啓動一項活動,則可以在清單中將活動定義爲singleTask

這樣,當您選擇了長按HOME快捷方式,它會永遠顯示主,singleTask活動。我這樣說是因爲我曾經使用過這種行爲。 ;-)

我相信,通過這個,你仍然可以啓動從通知的活動正常,使用,比方說,Intent秒。

在活動標籤:

 android:launchMode="singleTask" 
     > 

     <intent-filter> 
      <action android:name="android.intent.action.MAIN" /> 
      <category android:name="android.intent.category.LAUNCHER" /> 
     </intent-filter> 
    </activity> 
+0

我想你明白我想要什麼,但launchMode =「singleTask」並沒有解決我的問題。當我在長時間的家庭出版後選擇我的應用程序的快捷方式時,它並不總是顯示我的MAIN,它顯示我使用的最後一個活動。 – Binabik

+0

請複製粘貼你的清單。 – davidcesarino

+0

後回家長按我想開始活動閃屏......我刪除launchMode – Binabik

相關問題