最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

Android編程之四種Activity加載模式分析

 更新時間:2016年01月11日 11:52:22   作者:hshm20517  
這篇文章主要介紹了Android編程之四種Activity加載模式,簡要分析了Android編程中涉及的Activity的四種加載模式,具有一定參考借鑒價值,需要的朋友可以參考下

本文分析講述了Android編程之四種Activity加載模式。分享給大家供大家參考,具體如下:

Activity狀態(tài)

一般認(rèn)為Activity有以下四種狀態(tài):

① 活動的:當(dāng)一個Activity在棧頂,它是可視的、有焦點、可接受用戶輸入的。Android試圖盡最大可能保持它活動狀態(tài),殺死其它Activity來確保當(dāng)前活動Activity有足夠的資源可使用。當(dāng)另外一個Activity被激活,這個將會被暫停。

② 暫停:在很多情況下,你的Activity可視但是它沒有焦點,換句話說它被暫停了。有可能原因是一個透明或者非全屏的Activity被激活。

當(dāng)被暫停,一個Activity仍會當(dāng)成活動狀態(tài),只不過是不可以接受用戶輸入。在極特殊的情況下,Android將會殺死一個暫停的Activity來為活動的Activity提供充足的資源。當(dāng)一個Activity變?yōu)橥耆[藏,它將會變成停止。

③ 停止:當(dāng)一個Activity不是可視的,它“停止”了。這個Activity將仍然在內(nèi)存中保存它所有的狀態(tài)和會員信息。盡管如此,當(dāng)其它地方需要內(nèi)存時,它將是最有可能被釋放資源的。當(dāng)一個Activity停止后,一個很重要的步驟是要保存數(shù)據(jù)和當(dāng)前UI狀態(tài)。一旦一個Activity退出或關(guān)閉了,它將變?yōu)榇脿顟B(tài)。

④ 待用: 在一個Activity被殺死后和被裝在前,它是待用狀態(tài)的。待用Acitivity被移除Activity棧,并且需要在顯示和可用之前重新啟動它。

activity的四種加載模式

在android的多activity開發(fā)中,activity之間的跳轉(zhuǎn)可能需要有多種方式,有時是普通的生成一個新實例,有時希望跳轉(zhuǎn)到原來某個activity實例,而不是生成大量的重復(fù)的activity。加載模式便是決定以哪種方式啟動一個跳轉(zhuǎn)到原來某個Activity實例。

在android里,有4種activity的啟動模式,分別為:

standard: 標(biāo)準(zhǔn)模式,一調(diào)用startActivity()方法就會產(chǎn)生一個新的實例。

singleTop: 如果已經(jīng)有一個實例位于Activity棧的頂部時,就不產(chǎn)生新的實例,而只是調(diào)用Activity中的newInstance()方法。如果不位于棧頂,會產(chǎn)生一個新的實例。

singleTask: 會在一個新的task中產(chǎn)生這個實例,以后每次調(diào)用都會使用這個,不會去產(chǎn)生新的實例了。

singleInstance: 這個跟singleTask基本上是一樣,只有一個區(qū)別:在這個模式下的Activity實例所處的task中,只能有這個activity實例,不能有其他的實例。

singleTask: singleTask模式和后面的singleInstance模式都是只創(chuàng)建一個實例的。在這種模式下,無論跳轉(zhuǎn)的對象是不是位于棧頂?shù)腶ctivity,程序都不會生成一個新的實例(當(dāng)然前提是棧里面已經(jīng)有這個實例)。我覺得這種模式相當(dāng)有用。。在以后的多activity開發(fā)中, 經(jīng)常會因為跳轉(zhuǎn)的關(guān)系導(dǎo)致同個頁面生成多個實例,這個在用戶體驗上始終有點不好,而如果你將對應(yīng)的activity聲明為 singleTask 模式,這種問題將不復(fù)存在。不過前陣子好像又看過有人說一般不要將除開始頁面的其他頁面設(shè)置為 singleTask 模式。。原因暫時不明,哪位知道的可以請教下。

singleInstance: 看網(wǎng)上的解釋好像都比較復(fù)雜。剛開始也沒怎么明白這種模式,只知道它用的也不多。后來仔細(xì)看了網(wǎng)上的解釋,稍微有些懂了。就按我的理解解釋下。設(shè)置為 singleInstance 模式的 activity 將獨占一個task(感覺task可以理解為進程),獨占一個task的activity與其說是activity,倒不如說是一個應(yīng)用,這個應(yīng)用與其他activity是獨立的,它有自己的上下文activity。拿一個例子來說明吧:

現(xiàn)在有以下三個activity: Act1、Act2、Act3,其中Acti2 為 singleInstance 模式。它們之間的跳轉(zhuǎn)關(guān)系為: Act1 -- Act2 -- Act3 ,現(xiàn)在在Act3中按下返回鍵,由于Act2位于一個獨立的task中,它不屬于Act3的上下文activity,所以此時將直接返回到Act1。這就是singleInstance模式,不知道解釋清楚了沒。

這些啟動模式可以在功能清單文件AndroidManifest.xml中進行設(shè)置,中的launchMode屬性。

什么是Task

當(dāng)我們需要一個Activity可以啟動另一個Activity,可能另外一個Activity是定義在不同應(yīng)用程序中的Activity。

簡單來說,一個Task就是用戶體驗上的一個“應(yīng)用”。
它將相關(guān)的Activity組合在一起,以stack的方式管理(就是前面提到的Activity Stack),這就是Task。

在Android平臺上可以將task簡單的理解為幽多個Activity共同協(xié)作完成某項應(yīng)用,而不管Activity具體屬于哪個Application,

Task通過Application launcher、Home screen的快捷方式或者 由 “Recent Tasks”(長時間按住Home鍵)最近使用過的Task記錄中啟動。

希望本文所述對大家Android程序設(shè)計有所幫助。

相關(guān)文章

  • Android viewpage實現(xiàn)可控制的禁止滑動

    Android viewpage實現(xiàn)可控制的禁止滑動

    這篇文章主要為大家詳細(xì)介紹了Android viewpage實現(xiàn)可控制的禁止滑動,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2017-11-11
  • Android實現(xiàn)文件按時間先后順序排列顯示的示例代碼

    Android實現(xiàn)文件按時間先后順序排列顯示的示例代碼

    在很多Android應(yīng)用中,需要管理和展示本地文件,對文件按最后修改時間排序展示,能讓用戶直觀地了解文件的創(chuàng)建或修改順序,從而更方便地查找最新或最舊的文件,本文將介紹如何在Android平臺上獲取指定目錄下的文件列表,并按照時間先后排序,需要的朋友可以參考下
    2025-04-04
  • android使用service和activity獲取屏幕尺寸的方法

    android使用service和activity獲取屏幕尺寸的方法

    這篇文章主要介紹了android使用service和activity獲取屏幕尺寸的方法,實例分析了基于service和activity兩種方法獲取屏幕尺寸的相關(guān)技巧,非常簡單實用,需要的朋友可以參考下
    2015-08-08
  • Android中使用DownloadManager類來管理數(shù)據(jù)下載的教程

    Android中使用DownloadManager類來管理數(shù)據(jù)下載的教程

    這篇文章主要介紹了Android中使用DownloadManager類來管理數(shù)據(jù)下載的教程,針對HTTP下文件的下載與保存地址指定等基礎(chǔ)操作作出了詳細(xì)講解,需要的朋友可以參考下
    2016-04-04
  • Android AutoCompleteTextView控件使用實例

    Android AutoCompleteTextView控件使用實例

    AutoCompleteTextView這個控件用于輸入框的自動完成提示,非常適合搜索框等。它本質(zhì)上是個EditText,實際上它也是從EditText繼承的,使用起來也十分簡單
    2014-04-04
  • Android ListView實現(xiàn)上拉加載下拉刷新和滑動刪除功能

    Android ListView實現(xiàn)上拉加載下拉刷新和滑動刪除功能

    這篇文章主要為大家詳細(xì)介紹了Android ListView實現(xiàn)上拉加載下拉刷新和滑動刪除功能,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2016-12-12
  • Android?Flutter實現(xiàn)彈簧動畫交互的示例詳解

    Android?Flutter實現(xiàn)彈簧動畫交互的示例詳解

    物理模擬可以讓應(yīng)用程序的交互感覺逼真和互動,本文章實現(xiàn)了演示了如何使用彈簧模擬將小部件從拖動的點移回中心,感興趣的可以了解一下
    2023-04-04
  • Android 解析XML 文件的四種方法總結(jié)

    Android 解析XML 文件的四種方法總結(jié)

    本文將詳細(xì)介紹用解析XML的四種方法,XML現(xiàn)在已經(jīng)成為一種通用的數(shù)據(jù)交換格式,平臺的無關(guān)性使得很多場合都需要用到XML,這里對幾種解析XML 的方法做詳解
    2016-07-07
  • Android ListView 實例講解清晰易懂

    Android ListView 實例講解清晰易懂

    這篇文章主要通過實例介紹了Android ListView,本文給大家介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2021-09-09
  • Android開發(fā)之開關(guān)按鈕用法示例

    Android開發(fā)之開關(guān)按鈕用法示例

    這篇文章主要介紹了Android開發(fā)之開關(guān)按鈕用法,結(jié)合實例形式分析了Android開關(guān)按鈕的具體實現(xiàn)、布局與功能設(shè)置相關(guān)操作技巧,需要的朋友可以參考下
    2019-04-04

最新評論

西宁市| 临桂县| 铜陵市| 体育| 普洱| 新津县| 乌拉特后旗| 昌江| 神农架林区| 江安县| 磴口县| 崇阳县| 天水市| 武汉市| 延长县| 城市| 淳安县| 扶绥县| 成都市| 瑞丽市| 霍州市| 固镇县| 北安市| 兴安盟| 鲁甸县| 仪陇县| 聂荣县| 化州市| 六安市| 奉化市| 丰都县| 石台县| 三原县| 澄江县| 台山市| 澄城县| 岫岩| 麟游县| 梧州市| 阿拉善左旗| 延吉市|