啟動模式一共有4種.分別是standard, singleTop, singleTask 和 singleInstance. 可以在AndroidMainfest.xml中通過標簽指定android:launchMode屬性來選擇啟動模式.
1.standard
standard是活動默認的啟動模式,在不進行顯示指定的情況下,所有活動都會自動使用這種啟動模式.
Android是使用返回棧來管理活動的,在standard模式下,每當啟動一個新的活動,它就會在返回棧中入棧,并處于棧頂的位置.對于使用standard模式的活動,系統不會在乎這個活動是否已在返回棧中存在,每次啟動都會創建該活動的一個新的實例.
2.singleTop
當活動的啟動模式指定為singleTop,在啟動活動時如果發現返回棧的棧頂已經是該活動,則認為可以直接使用它,不會再創建新的活動實例.
不過當要啟動的活動并未處于棧頂位置時,這時在啟動活動,還是會創建新的實例的.
3.singleTask
使用singleTop模式可以很好地解決重復創建棧頂活動的問題,但是如果該活動未處在棧頂的位置,還是可能會創建多個活動實例的.
當活動的啟動模式指定為singleTask,每次啟動該活動時系統首先會在返回棧中檢查是否存在該活動的實例,如果發現已經存在則直接使用該實例,并把在這個活動之上的所有活動統統出棧,如果沒有發現就會創建一個新的實例.
4,singleInstance
singleInstance模式是4種啟動模式中最復雜最特殊的一個.這種模式的活動會啟用一個新的返回棧來管理這個活動.
假設我們程序中有一個活動是允許其它程序調用的,如果其它程序和我們的程序共享這個活動的實例,應該如何實現呢?使用前面三種啟動模式做不到,因為每個程序都有自己的返回棧,同一個活動在不同的返回棧入棧時必然是創建了新的實例.而是用singleInstance模式就可以解決這個問題,在這種模式下會有一個單獨的返回棧來管理這個活動,不管是哪個應用程序來訪問這個活動,都共用的同一個返回棧,也就解決了共享實例的問題.
看文倉www.kanwencang.com網友整理上傳,為您提供最全的知識大全,期待您的分享,轉載請注明出處。
歡迎轉載:http://www.kanwencang.com/bangong/20170309/115543.html
文章列表