【移動應(yīng)用開發(fā)技術(shù)】如何暫停和恢復(fù)Activity Android_第1頁
【移動應(yīng)用開發(fā)技術(shù)】如何暫停和恢復(fù)Activity Android_第2頁
【移動應(yīng)用開發(fā)技術(shù)】如何暫停和恢復(fù)Activity Android_第3頁
全文預(yù)覽已結(jié)束

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)

文檔簡介

【移動應(yīng)用開發(fā)技術(shù)】如何暫停和恢復(fù)ActivityAndroid

這篇文章給大家介紹如何暫停和恢復(fù)ActivityAndroid,內(nèi)容非常詳細,感興趣的小伙伴們可以參考借鑒,希望對大家能有所幫助。暫停和恢復(fù)Activity(PausingandResuminganActivity)在正常的應(yīng)用程序使用,前臺activity有時會被其他可視化組件遮擋,從而

造成activity的暫停。例如,當一個半透明的activity打開時(如在一個風(fēng)格對話框),以前的activity就暫停了。只要

activity仍然是部分可見,但目前沒有獲得焦點,它就依然處于暫停狀態(tài)。然而,一旦activity被完全遮擋住,并且對用戶不可見了,那么它就停止了(這是下一課需要討論的內(nèi)容)。當你的activity進入暫停狀態(tài),系統(tǒng)將對你的Activity調(diào)用

onPause()方法。在此方法中,你可以停止那些在暫停狀態(tài)時不應(yīng)該繼續(xù)進行的行為(如視頻播放),或者持久化一些需要***保存的信息,以使得用戶繼

續(xù)留在你的應(yīng)用程序。如果用戶返回到你的activity,系統(tǒng)將從暫停狀態(tài)中恢復(fù)它,并調(diào)用onResume()方法。注意:當你的activity接收到一個對onPause()的調(diào)用時,它可能是一個跡象,表明activity將暫停一會兒,然后用戶還會返回到你的activity。然而,它通常是***個跡象,表明用戶正在離開你的activity。圖1。當一個半透明的activity掩蓋了你的activity,系統(tǒng)就會調(diào)用onPause(),activity等在暫停狀態(tài)(1)。如果用戶返回到仍處于暫停狀態(tài)的activity,系統(tǒng)就會調(diào)用onResume()(2)。暫停你的Activity(PauseYourActivity)當系統(tǒng)為你的activity調(diào)用onPause()時,從技術(shù)上講,你的activity仍然是部分可見的,但最常見的是表明用戶正在離開這個activity,并且它也將很快進入停止(Stopped)狀態(tài)。你應(yīng)該通常使用onPause()回調(diào):停止動畫效果或者其他正在進行地消耗CPU資源的行為。提交尚未保存的更改,但前提是用戶希望這樣處理:當他們離開時,需要將所做的變動做一個***地保存(如撰寫電子郵件)。釋放一些系統(tǒng)資源,例如廣播接收器,處理傳感器(如GPS),或任何會影響電池壽命的資源,而與此同時你的activity又被暫停了,用戶不再需要這些資源。舉個例子,如果你的應(yīng)用程序使用了照相機,那么onPause()方法就是釋放它的好地方。@Override

public

void

onPause()

{

super.onPause();

//

Always

call

the

superclass

method

first

//

Release

the

Camera

because

we

don't

need

it

when

paused

//

and

other

activities

might

need

to

use

it.

if

(mCamera

!=

null)

{

mCamera.release()

mCamera

=

null;

}

}一般來說,你不應(yīng)該使用onPause()去將用戶的變更(如個人信息輸入形

式)保存到持久化的存儲中。只有當你確定用戶期望的是自動保存其所做的變更(如起草一個電子郵件)時,你才可以在onPause()方法中將用戶的這種變

更寫到持久化存儲中。然而,你應(yīng)該避免在onPause()中執(zhí)行CPU高負荷工作,如讀寫數(shù)據(jù)庫,因為它會減緩到下一個activity的過渡動作(你

應(yīng)該在onStop()中執(zhí)行重負荷關(guān)閉動作)。你應(yīng)該保持業(yè)務(wù)量在onPause()方法相對簡單,為了讓一個快速過渡到用戶的下一個目的地,如果你的activity實際上是被停止。注意:當你的activity暫停時,該Activity實例還駐留在內(nèi)存中,并且在activity恢復(fù)時再被重新調(diào)用。你在調(diào)用任何回調(diào)方法轉(zhuǎn)變到恢復(fù)狀態(tài)時,不需要重新初始化那些已經(jīng)創(chuàng)建了的組件,?;謴?fù)你的Activity(ResumeYourActivity)當用戶從暫停狀態(tài)中恢復(fù)你的activity時,系統(tǒng)就會調(diào)用onResume()方法。要注意的是,每次你的activity進入前景時,系統(tǒng)都會調(diào)用這個方法,包括

當它***次被創(chuàng)建的時候。因此,你應(yīng)該在實現(xiàn)onResume()時,初始化那些你在onPause()會釋放的組件,并且執(zhí)行那些每次activity

進入恢復(fù)狀態(tài)時都必須完成的初始化動作(如開始動畫和初始化activity獲得用戶焦點時需要使用的組件)。下面的例子onResume()是對應(yīng)的onPause()上面的例子,所以它初始化activity暫停時被釋放的相機。@Override

public

void

onResume()

{

super.onResume();

//

Always

call

the

superclass

method

first

//

Get

the

Camera

instance

as

the

activity

achieves

full

user

focus

if

(mCamera

==

null)

{

initializeCamera();

//

Local

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論