編輯:Android開發實例
前言
四大應用程序組件中Activity是最常用的,也是必須掌握的一個組件。這裡分幾章梳理歸納一些實用的知識點與大家分享。
正文一、配圖及說明
Activity主要的三種狀態:
Running(運行):在屏幕前台(位於當前任務堆棧的頂部)
Paused(暫停):失去焦點但仍然對用戶可見(覆蓋Activity可能是透明或未完全遮擋)
Stopped(停止):完全被另一個Activity覆蓋
二、事件方法鏈
2.1 進入Activity
onCreate -> onStart -> onResume
2.2 BACK鍵
onPause -> onStop -> onDestroy
2.3 HOME鍵 Home鍵退出:onPause -> onStopHome鍵回來:onRestart -> onStart -> onResume
2.4 休眠/恢復
休眠: onPause
恢復: onResume
2.5 旋轉屏幕未設置android:configChanges:
onPause -> onStop -> onDestory -> onCreate -> onStart -> onResume
設置了android:configChanges="orientation|keyboardHidden":
不會觸發生命周期方法,參見文章這裡。
2.6 來電來電,顯示來電界面:
onPause -> onStop
關閉電話界面,重新回到當前Activity:
onRestart -> onStart -> onResume
2.7 其他Activity
進入下一個Activity:
onPause -> onStop
從其他Activity返回至當前Acitivity:
onRestart -> onStart -> onResume
三、與Activity生命周期結合的應用場景
3.1 與廣播(Broadcast)結合
在onResume注冊廣播(registerLinstener),在onPause注銷廣播(unregisterLinstener)。 例如:
做"搖一搖"功能(傳感器)、監聽網絡變化,就可以在onResume中注冊監聽,在onPause裡注銷掉,已節省資源提高效率。
3.2 與服務(Service)結合
在onStart綁定服務(bindService),在onStop中取消綁定(unbindService)。 例如:
需要通過Service定時更新UI上的數據,而Activity的可見周期在onStart與onStop之間,那麼就可以再onStart時啟動服務,在onStop時停止服務。為了節約系統資源,除了提高用戶體驗以外,開發人員應盡可能的優化程序。
3.3 與Cursor結合
使用managedQuery讓Activity幫你管理Cursor的生命周期,不用自己去close。但也有一些問題,補充兩篇文章:這裡1、 這裡2。
3.4 釋放資源
可以在onDestory中釋放一些資源。比如可以在onDestory時調用MediaPlayer的release。
四、注意
4.1 所有Activity生命周期方法的實現都必須先調用其父類版本。
4.2 由於Activity經常會暫停和恢復之間切換,所以onResume和onPause這兩個方法應當是輕量級的。
4.3 在系統再某種緊急情況下需要回收內存,onStop、onDestory可能不會被調用,因此需要在onPause中把需要長期保存的數據保存起來。
本文以實例形式較為詳細的展示了Android錄音的實現方法,分享給大家供大家參考之用。具體方法如下: 首先是xml布局文件: <LinearLayout
本文實例講述了Android編程實現讀取手機聯系人、撥號、發送短信及長按菜單操作方法。分享給大家供大家參考,具體如下: 1.Andrid項目結構圖↓主要操作圖中紅
登錄應用程序的屏幕,詢問憑據登錄到一些特定的應用。可能需要登錄到Facebook,微博等本章介紹了,如何創建一個登錄界面,以及如何管理安全問題和錯誤嘗試。首先,必須定義兩
unity3d發布apk在android虛擬機中運行的詳細步驟(unity3d導出android apk),總的流程分為以下6個步驟: 1、安裝java_jdk