2011-08-03 54 views
3

我在啓動新活動時遇到FLAG_ACTIVITY_NEW_TASK標誌存在問題。FLAG_ACTIVITY_NEW_TASK沒有像預期的那樣運行

目前我有2個應用程序:應用程序A只包含一個服務可同時啓動應用B的主要活動(應用程序B有1個活動是其主要活動)

我的問題是這是因爲:當應用程序B處於活動狀態(其主要活動對用戶可見並且它是其任務中的唯一活動)時,該服務獲取應用程序B程序包名稱的啓動意向(來自PackageManager),並向其添加FLAG_ACTIVITY_NEW_TASK標誌(它必須這樣做,因爲它不是一個活動環境,而是一個服務)。

現在,推出這一意圖的時候,我所盼望的,因爲在開發者指南中的文檔發生情況如下:

FLAG_ACTIVITY_NEW_TASK

當使用這個標誌,如果一個任務已經 運行對於您現在開始的活動,則不會啓動新活動 ;相反,當前的任務只會帶來 與上次的狀態後,屏幕的正面。

但是,由於某種原因,應用B的另一主要活動是創建和推出,在頂部已經存在一個,所以我在應用程序B任務中有兩個主要活動。

主要活動沒有在清單中設置特殊屬性,因此其launchMode屬性會自動設置爲標準。

謝謝!

回答

0

您是否嘗試將應用程序B中主要活動的啓動模式更改爲ApplicationB的AndroidManifest.xml中的SingleTask或SingleInstance?

查看Launch mode瞭解更多信息。

0

如果活動已經打開onNewIntent,則會調用override方法。根據您的要求實施該方法。我的要求是僅保留一項活動任務。所以我開始新的任務並完成舊的任務。在活動中執行此操作B

@Override 
protected void onNewIntent(Intent intent) { 
    startActivity(intent); 
    finish(); 
}; 
相關問題