android 啟動模式應用場景

weixin_33976072發表於2017-09-11

Standard

該模式為預設模式,適用於大多數應用場景。

SingleTop

  • 通知訊息開啟的頁面;
  • 耗時操作返回頁面;
  • 登入頁面

SingleTask

瀏覽器、微博等頁面

  • 大多數 App 的主頁。對於大部分應用,當我們在主介面點選回退按鈕的時候都是退出應用,那麼當我們第一次進入主介面之後,主介面位於棧底,以後不管我們開啟了多少個 Activity,只要我們再次回到主介面,都應該使用將主介面Activity 上所有的 Activity 移除的方式來讓主介面 Activity 處於棧頂,而不是往棧頂新加一個主介面 Activity 的例項,通過這種方式能夠保證退出應用時所有的 Activity 都能被銷燬。

SingleInstance

單一例項模式,整個手機作業系統裡面只有一個例項存在。不同的應用去開啟這個 activity 共享同一個 activity。他會執行在自己單獨,獨立的任務棧裡面,並且任務棧裡面只有他一個例項存在。

應用場景:呼叫來電介面。

  1. 以singleInstance模式啟動的Activity具有全域性唯一性,即整個系統中只會存在一個這樣的例項;
  2. 以singleInstance模式啟動的Activity在整個系統中是單例的,如果在啟動這樣的Activiyt時,已經存在了一個例項,那麼會把它所在的任務排程到前臺,重用這個例項;
  3. 以singleInstance模式啟動的Activity具有獨佔性,即它會獨自佔用一個任務,被他開啟的任何activity都會執行在其他任務中;
  4. 被 singleInstance 模式的Activity開啟的其他activity,能夠在新的任務中啟動,但不一定開啟新的任務,也可能在已有的一個任務中開啟。

相關文章