Android知識回顧

Android的啟動模式
  • standard:標準模式
  • singleTop:棧頂復用模式
  • singleTask:棧內復用模式
  • singleInstance:單實例模式
啟動Activity時并指定啟動模式有兩種方式
  • 一種是在清單文件中指明
  • 另一種則是在Intent中添加FLAG標志位
    默認是標準模式
standard啟動模式

系統在啟動 Activity 的任務中創(chuàng)建 Activity 的新實例并向其傳送 Intent。Activity 可以多次實例化,而每個實例均可屬于不同的任務,并且一個任務可以擁有多個實例。

    //standard模式啟動A
    public void standardStartA(View view) {
        startActivity(new Intent(this, ActivityA.class));
    }

創(chuàng)建Activity然后與任務關聯

singleTop啟動模式
  • 如果當前任務的頂部已存在 Activity 的一個實例,則系統會通過調用該實例的 onNewIntent() 方法向其傳送 Intent,而不是創(chuàng)建 Activity 的新實例.
  • Activity 可以多次實例化,而每個實例均可屬于不同的任務,并且一個任務可以擁有多個實例(但前提是位于返回棧頂部的 Activity 并不是 Activity 的現有實例)。

例:

  • (1) ActivityA以singleTop模式啟動ActivityB,然后ActivityB再以singleTop模式啟動ActivityB。
  • (2) 任務棧中有兩個Activity,分別是ActivityB和ActivityA;下面從ActivityB再次以singleTop模式啟動ActivityB。
  • (3) 任務棧中依舊是ActivityB和ActivityA,這就是singleTop模式的作用,棧頂復用,因為ActivityB啟動ActivityB時,ActivityB已經位于棧頂,那么就會直接使用ActivityB,而不是直接創(chuàng)建。
singleTask啟動模式
  • 系統創(chuàng)建新任務并實例化位于新任務底部的 Activity。但是,如果該 Activity 的一個實例已存在于一個單獨的任務中,則系統會通過調用現有實例的 onNewIntent() 方法向其傳送 Intent,而不是創(chuàng)建新實例
  • 一次只能存在 Activity 的一個實例
  • 盡管 Activity 在新任務中啟動,但是用戶按“返回”按鈕仍會返回到前一個 Activity。
singleInstance啟動模式
  • 與 “singleTask” 相同,只是系統不會將任何其他 Activity 啟動到包含實例的任務中,該 Activity 始終是其任務唯一僅有的成員;
  • Activity 啟動的任何 Activity 均在單獨的任務中打開
?著作權歸作者所有,轉載或內容合作請聯系作者
【社區(qū)內容提示】社區(qū)部分內容疑似由AI輔助生成,瀏覽時請結合常識與多方信息審慎甄別。
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發(fā)布,文章內容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務。

相關閱讀更多精彩內容

友情鏈接更多精彩內容