Andriod應用開發知識搜集4

來源:互聯網
上載者:User

標籤:

1、Activity的生命週期:

    Activity大致會經過如下4個狀態:

    活動狀態:當前Activity位於前台,使用者可見,可以獲得焦點。

    暫停狀態:其他Activity位於前台,該Activity依然可見,只是不能獲得焦點。

    停止狀態:該Activity不可見,失去焦點。

    銷毀狀態:該Activity結束,或Activity所在的Dalvik進程被結束。

    在Activity的生命週期中,如下方法會被系統回調:

    onCreate(Bundle savedStatus): 建立Activity時被回調。該方法只會被調用一次。

    onStart(): 啟動Activity時被回調,。

    onRestart(): 重新啟動Activity時被回調。

    onResume(): 恢複Activity時被回調,onStart()方法後一定會回調 onResume() 方法。

    onPause(): 暫停Activity時被回調,也就是系統準備啟動或恢複另一個活動時調用。

    onStop(): 停止Activity時被回調。

    onDestroy(): 銷毀Activity時被調用。該方法只會被調用一次。

 

 

    開發Activity時可根據需要選擇性地覆蓋指定方法:

    覆蓋onCreate(Bundle savedStatus)方法:該方法用於對該Activity執行初始化,如載入布局、綁定事件...

    覆蓋onPause()方法:可以儲存進行狀態,儲存一些關鍵資料

    覆蓋onResume()方法:恢複儲存的狀態

2、關於Service:

    開發人員開發Service的步驟與開發Activity的步驟很像,開發Service組件需要先開發一個Service的子類,然後在AndroidManifest.xml檔案中配置該Service,配置時可通過<intent-filter.../>元素指定它可被哪些Intent啟動。

    Service與Activity還有一點相似之處,它們都是從Context派生出來的,因此它們都可調用Context裡定義的如getResources()、getContentResolver()等方法。

    Android系統本身提供了大量的Service組件,開發人員可通過這些系統Service來操作Android系統本身。

    Service中也定義了系列生命週期方法:

    IBinder onBind(Intent intent): 該方法是Service子類必須實現的方法。該方法返回一個IBinder對象,應用程式可通過該對象與Service組件通訊。

    void onCreate(): 當該Service第一次被建立後將立即回調該方法。

    void onDestroy(): 當該Service被關閉之前將會回調該方法。

    void onStartCommand(Intent intent, int flags, int startId): 該方法的早期版本是void onStart(Intent intent, int startId), 每次用戶端調用startService(Intent)方法啟動該Service時都會回調該方法。

    boolean onUnbind(Intent intent): 當該Service上綁定的所有用戶端都中斷連線時將會回調該方法。

    調用Context裡定義的startService()、stopService()方法即可啟動、關閉Service。

    每當Service被建立時會回調onCreate方法,每次Service被啟動時都會回調onStart方法——多次啟動一個已有的Service組件將不會再回調onCreate方法,但每次啟動時都會回調onStartCommand()方法。

    如果希望Service組件做某些事情,那麼只要在 onCreate() 或 onStartCommand() 方法中定義相關業務代碼即可。

    Android系統中運行Service有如下兩種方式:

    通過Context的 startService() 方法:通過該方法啟用Service,訪問者與Service之間沒有關聯,即使訪問者退出了,Service仍然運行,也無法進行通訊、資料交換。

    通過Context的 bindService() 方法:使用該方法啟用Service,訪問者與Service綁定在了一起,訪問者一旦退出,Service也就終止,使用unbindService()方法關閉Service,可以進行方法調用或資料交換。

    bindService(Intent service, ServiceConnection conn, int flags)的三個參數的解釋如下:

    service:該參數通過Intent指定要啟動的Service

    conn:該參數是一個ServiceConnection對象,該對象用於監聽訪問者與Service之間的串連情況。當訪問者與Service之間串連成功時將回調該ServiceConnection對象的 onServiceConnected(ComponentName name, IBinder service)方法,onBind(Intent intent)方法所返回的IBinder對象將會傳給service參數,這樣訪問者就可通過該IBindler與被綁定Service進行的通訊;當Service所在的宿主進程由於異常中止或由於其他原因終止,導致該Service與訪問者之間中斷連線時回調該ServiceConnection對象的onServiceDisconnected(ComponentName name)方法(當調用者主動通過unBindService()方法斷開與Service的串連時,ServiceConnection對象的onServiceDisconnected(ComponentName name)方法並不會被調用)

    flags:指定綁定時是否自動建立Service(如果Service還未建立)。該參數可指定為0(不自動建立)或BIND_AUTO_CREATE(自動建立)

Andriod應用開發知識搜集4

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.