Android教程網
  1. 首頁
  2. Android 技術
  3. Android 手機
  4. Android 系統教程
  5. Android 游戲
 Android教程網 >> Android技術 >> Android開發 >> 高級開發 >> Android四種Activity的加載模式(7)

Android四種Activity的加載模式(7)

編輯:高級開發

會到別的task裡運行(如同加了FLAG_ACTIVITY_NEW_TASK參數)。
  而另外三種模式,則可以和其它activity共存。

  是否每次都生成新實例

  “standard”對於每一個啟動Intent都會生成一個activity的新實例;
  “singleTop”的activity如果在task的棧頂的話,則不生成新的該activity的實例,直接使用棧頂的實例,否則,生成該activity的實例。

  比如:

  現在task棧元素為A-B-C-D(D在棧頂),這時候給D發一個啟動intent,如果D是 “standard”的,則生成D的一個新實例,棧變為A-B-C-D-D。
  如果D是singleTop的話,則不會生產D的新實例,棧狀態仍為A-B-C-D
  如果這時候給B發Intent的話,不管B的launchmode是”standard” 還是 “singleTop” ,都會生成B的新實例,棧狀態變為A-B-C-D-B。

  “singleInstance”是其所在棧的唯一activity,它會每次都被重用。

  “singleTask” 如果在棧頂,則接受intent,否則,該intent會被丟棄,但是該task仍會回到前台。 當已經存在的activity實例處理新的intent時候,會調用onNewIntent()方法,如果收到intent生成一個activity實例,那麼用戶可以通過back鍵回到上一個狀態;如果是已經存在的一個activity來處理這個intent的話,用戶不能通過按back鍵返回到這之前的狀態。

  參考資料

  android的七巧板Activity之一 Activity的生命周期
  http://winux

  1. 上一頁:
  2. 下一頁:
熱門文章
閱讀排行版
Copyright © Android教程網 All Rights Reserved