2016-06-30 39 views
0

我正在爲Android創建一個瀏覽器,我想複製我的Activity以創建具有相同活動的新多任務任務。如何創建相同的活動多次以獲得類似Google Chrome標籤的效果?

Intent intent=new Intent(this, MainActivity.class); 
intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK | Intent.FLAG_ACTIVITY_MULTIPLE_TASK); 
startActivity(intent); 

這是我的代碼,請幫忙。 感謝

+1

它不起作用,或? –

+0

使用片段https://developer.android.com/guide/components/fragments.html –

回答

1

使用此與new_document更換標誌new_task

意向意圖=新意圖(這一點,MainActivity.class); intent.setFlags(Intent.FLAG_ACTIVITY_NEW_DOCUMENT | Intent.FLAG_ACTIVITY_MULTIPLE_TASK); startActivity(intent);

+0

其工作非常感謝! –

+0

如果您認爲它解決了您的問題,請將其標記爲其他用戶知道的答案 –

0

你可以嘗試 FLAG_ACTIVITY_MULTIPLE_TASK和FLAG_ACTIVITY_NEW_DOCUMENT

FLAG_ACTIVITY_MULTIPLE_TASK

這個標誌被用來創建一個新的任務,並推出一個活動到它。 此標誌始終與FLAG_ACTIVITY_NEW_DOCUMENT或 FLAG_ACTIVITY_NEW_TASK配對。在這兩種情況下,這些標誌本身都會通過現有任務搜索 以匹配與此Intent匹配的任務。只有在找不到這樣的 任務時纔會創建新的任務。當與 FLAG_ACTIVITY_MULTIPLE_TASK配對時,這兩種行爲都會修改爲 ,請跳過搜索匹配任務並無條件啓動新的 任務。與FLAG_ACTIVITY_NEW_TASK一起使用時,請勿使用此標誌 ,除非您正在實施自己的頂級應用程序啓動器。 與FLAG_ACTIVITY_NEW_TASK一起使用以禁用將現有任務置於前臺的 行爲。設置後,將始終啓動一個 新任務,以承擔Intent的活動 ,而不管是否已有運行 相同的任務的現有任務。

由於默認系統不包含圖形任務管理,因此您不應使用此標誌,除非您爲某位用戶提供某種方式讓 返回您已啓動的任務。有關此標誌用於創建 新文檔任務的詳細信息,請參閱 FLAG_ACTIVITY_NEW_DOCUMENT。

>如果未設置FLAG_ACTIVITY_NEW_TASK或 FLAG_ACTIVITY_NEW_DOCUMENT中的一個,則忽略此標誌。

FLAG_ACTIVITY_NEW_DOCUMENT

這個標誌是用來打開文檔到在 活動通過這個意圖發佈根的新任務。通過使用此標誌或其 等效屬性,包含不同文檔的相同活動的documentLaunchMode多個實例將出現在最近的 任務列表中。

這個documentLaunchMode的活動屬性表單的使用是 ,優於此處描述的Intent標誌。屬性表格 允許活動爲活動的所有 啓動器指定多個文檔行爲,而使用此標誌需要啓動活動以指定它的每個Intent 。

請注意,此標誌w.r.t的默認語義。 最近錄入條目是否在活動完成後保留爲 與使用FLAG_ACTIVITY_NEW_TASK和 documentLaunchMode不同 - 如果使用此標誌創建新的錄入條目,則默認情況下該條目將被刪除一次 活動完成。您可以使用 FLAG_ACTIVITY_RETAIN_IN_RECENTS修改此行爲。

0

有兩種方法可以做到這一點。這兩者在Android的Recents Screen guide中都有很好的描述。

第一種方法是使用意圖國旗:

final Intent newDocumentIntent = new Intent(this, NewDocumentActivity.class); 
newDocumentIntent.addFlags(Intent.FLAG_ACTIVITY_NEW_DOCUMENT); 
newDocumentIntent.addFlags(Intent.FLAG_ACTIVITY_MULTIPLE_TASK); 
startActivity(newDocumentIntent); 

第二種方法是使用<activity>屬性,android:documentLaunchMode

相關問題