資 訊

網站建設、app開發、微信開發、網絡營銷知識匯聚

We provide professional and all-round information services to enterprises from all levels and angles

app開發四大組件之-Activity
admin 2018-09-04

本節介紹Android?app開發四大組件之-Activity的基?本概念和常?見用法。首先說明Activity的生命周期,接著說明Intent的組成部分與工作原理,然后闡述如何使用Intent完成活動頁面之間的消息傳遞,包括如何傳遞請求參數、如何返回應答參數

??????3.5.1?Activity的app制作生命周期

??????看到這里,相信讀者對Activity已經不陌生了。首先,一個Activity代表一個頁面。其次,Activity的onCreate方法是頁面的入口函數。更細心的讀者也許已經知道調用startActivity方法可以跳轉到下一個頁面。之所以到這時才介紹Activity,是因為Activity的邏輯復雜、概念繁多,必須在有一定基礎后講解才合適,不然一開始就講解高深的專業術語,讀者恐怕很難理解。

??????首先介紹Activity的生命周期,如同花開花落一般?,Activity也有從含苞待放到盛開再到凋零的生命過程。下面是Activity與生命周期有關的方法說明。

??????onCreate:創建頁面。把頁面上的各個元素加載到內存中。onStart:開始頁面。把頁面顯示在屏幕上。

??????onResume:恢復頁面。讓頁面在屏幕上活動起來,例如開啟動畫、開始任務等。

??????onPause:暫停頁面。讓頁面在屏幕上的動作停下來。onStop:停止頁面。把頁面從屏幕上撤下來。onDestroy:銷毀頁面。把頁面從內存中清除掉。

??????onRestart:重啟頁面。重新加載內存中的頁面數據。

??????下面針對幾個常見的app制作場景探究一下Activity的生命周期,主要有3個場景:頁面之間的跳轉、豎屏與橫屏的切換、按HOME鍵與返回App。用于場景測試的代碼如下,主要在每個生命周期函數中增加打印屏幕日志和后臺日志。



F1e4saXUO?:?(GT&a)4TA49Vdupv/a?:zSL*ot:o8:TE
asneduo?:?(StEz)4quAq0V4XaNoV/a?:?otl'ot:oE:I
:業嘩罕日oAoqsequO-?-do1suo咀互一⊥←eumnseyuo?-4IE1SUO?-ITE1SYUO
里逆↓一T←esneduo里空V-⊥:華岑馴辛4號甾郾“(笑$ystuyE鷂!中戰外玷算科回)41A90vdunfpv適回4IAqOV7XaNPVW
doasuo?:(StEz)4A.qDvdunpov/a?:9rEE:oE:trauunseyuo?:(StEz)/4AqOV7XeN4DV/a?:889'zE:oE:tT
ITESUO?:(StEz)4q!AqDV7XaNI0V/a?:?889'zE:oE:tta1eaJuo?:(StEz)44AqPVXaNPDV/a?:889*z8:oE:ttasneauo?:(SrEz)4qAqovdumpv/a?:?899'zE:oE:tT
:⊥嘩罕日。do4suo哩空ψ-T←ouns∞Y∪O←4-IEASUO→042≥1D∪0哩亞少一⊥←-asneduo里至V-?T?:以岑馴釋與宙郾!?:4A4V7XNPV恬胞2A4A4vdumPVW
auunseyuo?:(SrEz)4qa1qvdumnqpv/a?:zS&*gT:oE:TT
lIe1SuO?:?(StEz)A4x.q0vdunf4ov/a?:zSE^gT:oE:TTaleaJJuo?:(StEz)4qA.qvdumnpov/a?:zSE*gT:oE:tt
:嘩罕日。aunsayuo?4IE1SUO?-1ea1Ju0型並平:樂掣馴啡舉4宙副!?:fqlAqDvdum4V哩逆世年¥具

。7+[手第判陲但!中4(墾墾‘罕日面4eo8o[業一$!徘里。蟊蘭鷂業冒導罕日日平晉真業‘丌凱$里單V-?T到樸秉啕啡哩逆-?業‘矮墾?Y旦圖簿罕曰W
。辭平(瞬留嬰手邱440vdun4v回虱半¥4風‘?辭平!瞬囝嬰手EF41AqDV4XONOV恬鐘貂半肇碗8‘?辭平!瞬留豎手以4APDvdunqpv里逆Y那半舉槲岡‘中其。半卵0z-E圖嘩圖肄罕日泊于里笛。?AqAqovduv回@-4q4A40V7XANPV*W當淄'.4q4AqOV7X3NPV適辣船里逆染W墾舞:Auxp2vdunqV型?逆其!證X形¥具





??????圖3-21活動貞?面在橫豎屏切換時的界面日志截圖

??????至此,基本上可以弄清楚頁面跳轉時的生命周期了。總體上是跳轉前的頁面先周用onPause方法,然后跳轉后的頁面依次調用

??????onCreate/?onRestart-?+onStart-?+onResume,?最后跳轉前的頁面調用onStop方去(若返回上級頁面,則下級頁面還需調用onDestroy方法)。

??????2.豎屏與橫屏的切換

??????首先進入測試頁面ActRotate?Activity,此時默認為豎屏顯示;接著倒轉手機切換到橫屏,觀察日志;然后倒轉手機切換回豎屏,觀察日志。3個屏幕的顯示日志時間沒有重復,這里的日志截圖是3次截圖拼接而成的,如圖3-21所示。

??????從日志截圖可以看出,豎屏與橫屏似乎在每次切換時頁面都要重新創建。為進一步驗證實驗結果,再一次查看logcat里的日志,?日志信息如下:

??????21:02:10.179?D/ActRotateActivity:?onCreate21:02:10.179?D/ActRotateActivity:?onStart21:02:10.179?D/ActRotateActivity:?onResume21:02:13.227?D/ActRotateActivity:?onPause21:02:13.227?D/ActRotateActivity:?onStop21:02:13.227?D/ActRotateActivity:?onDestroy21:02:13.247?D/ActRotateActivity:?onCreate21:02:13.247?D/ActRotateActivity:?onStart21:02:13.247?D/ActRotateActivity:?onResume21:02:16.239?D/ActRotateActivity:?onPause21:02:16.239?D/ActRotateActivity:?onStop21:02:16.239?D/ActRotateActivity:?onDestroy21:02:16.279?D/ActRotateActivity:?onCreate




??????圖3-22按HOME鍵的app制作公司界面日志截圖

??????首先進入測試頁面ActHomeActivity;接著按HOME鍵,屏幕回到桌面;然后按任務鍵或長按HOME鍵(不同手機的操作不一樣),屏幕調出進程視圖;最后點擊則試App,屏幕返回測試頁面。一路下來的屏幕日志截圖如圖3-22所示。

??????從日志截圖可以看到,此時測試頁面的生命周期是典型的從活動狀態變為暫停狀態(回到桌面時)再到活動狀態(返回App頁面時)。觀察logcat的后臺日志,發現后臺日志與屏幕日志保持一致。3.5.2??使用Intent傳遞消息

??????Intent的中文名是意圖,意思是我想讓你干什么,簡單地說,就是傳遞消息。Intent是各個組件之間信息溝通的橋梁,既能在Activity之間溝通,又能在Activity與Service之間溝通,也能在Activity與Broadcast之間溝通。總而言之,Intent用?于處理Android各組件之間的通信,完成的工作主要有3部分:

??????(1)Intent需標明本次通信請求從哪里來、到哪里去、要怎么走。

??????(2)發起方攜帶本次通信需要的數據內容,接收方對收到的Intent數據進行解包。

??????(3)如果發起方要求判斷接收方的處理結果,Intent就要負責讓接收方傳回應答的數據內容。

  • 上一篇:網站app開發的Button控件
  • 下一篇:已經沒有了
  • 版權所有:西安市兄弟軟件有限公司 陜ICP備17014046號-1 © Copyright?2019 SoftSs LTD. All Right Reserved
    QQ在線咨詢

    app開發QQ在線咨詢 app開發QQ在線咨詢
    電話咨詢
    029-88216312 西安兄弟軟件有限公司電話咨詢
    即時在線咨詢 手機軟件開發即時在線咨詢
    微信掃一掃
    添加app制作微信 網站制作公司微信
    -專業的互聯網技術開發商-

    凡事有交代 件件有著落 事事有回應

    立即獲取為您量身定制的開發營銷方案

    咨詢熱線 15902910279 13572477686 029-88216312
    网上麻将平台
    辽宁十一选五开奖结果预测 为什么没有赚钱的能力 12选5胆拖计算器 imoney爱盈利苹果手机赚钱 玩龙虎有什么诀窍 安徽快3预测 赚钱的时代过了 北京快乐8中和稳赚技巧 用微信阅读赚钱