簡體   English   中英

如何在 Android N 多窗口中將同一個 Activity 啟動到單獨的窗口中?

[英]How Do I Launch the Same Activity Into a Separate Window in Android N Multi-Window?

Android N Developer Preview 1 的文檔表明您可以使用Intent.FLAG_ACTIVITY_LAUNCH_ADJACENT來請求 Android 在單獨的窗口(自由格式)或相鄰的窗格(分屏)中啟動活動。 Google 的示例代碼顯示使用Intent.FLAG_ACTIVITY_LAUNCH_ADJACENT | Intent.FLAG_ACTIVITY_NEW_TASK Intent.FLAG_ACTIVITY_LAUNCH_ADJACENT | Intent.FLAG_ACTIVITY_NEW_TASK來完成這個。

如果正在啟動的活動與開始的活動是不同的類,那么這很好用。

因此,例如,如果您有一個MainActivity ,它具有以下代碼來啟動一個單獨的實例:

  Intent i=
    new Intent(this, MainActivity.class)
      .setFlags(Intent.FLAG_ACTIVITY_LAUNCH_ADJACENT |
        Intent.FLAG_ACTIVITY_NEW_TASK);

  startActivity(i);

那么結果是FLAG_ACTIVITY_LAUNCH_ADJACENT被忽略,新的活動實例進入現有的窗口或窗格。

但是,如果你啟動任何其他活動(例如, SecondActivity.class ),然后FLAG_ACTIVITY_LAUNCH_ADJACENT作品為標榜。

如果您想讓用戶從您的應用程序中打開兩個電子表格、兩個記事本或兩個任何內容,該怎么辦? 我們如何使用FLAG_ACTIVITY_LAUNCH_ADJACENT來啟動同一個活動的兩個實例?

根據關於這個問題的討論,你還需要融入FLAG_ACTIVITY_MULTIPLE_TASK

  Intent i=
    new Intent(this, MainActivity.class)
      .setFlags(Intent.FLAG_ACTIVITY_LAUNCH_ADJACENT |
        Intent.FLAG_ACTIVITY_NEW_TASK |
        Intent.FLAG_ACTIVITY_MULTIPLE_TASK);

  startActivity(i);

然后這兩個活動實例將位於單獨的窗口/窗格/任何內容中。

此示例項目為 N Developer Preview 1 演示了這一點。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM