標籤:ide onpause ace pac stat pack over create mil
1、Activity簡介
四大組件之一的Activity組件,在應用中一個Activity可以用來表示一個介面,中文意思也可以理解為“活動”,即一個活動開始,代表Activity組件啟動,活動結束,代表一個Activity的生命週期結束。一個Android應用必須通過Activity來運行和啟動,Activity的生命週期交給系統統一管理。
理解以下四個基本概念,將有助於我們更好的瞭解Android系統內部機制:
Activity:活動,程式中的介面
Application:應用程式
Activity棧:管理Activity的棧結構
Task:任務
2、Activity狀態在Android中,Activity擁有三個基本狀態:(一)Resumed:一個新Activity啟動入棧後,它在螢幕最前端,處於棧的最頂端,此時它處於可見並可和使用者互動的啟用狀態。(二)Paused:當Activity被另一個透明或者Dialog樣式的Activity覆蓋時的狀態。此時它依然與視窗管理器保持串連,系統繼續維護其內部狀態,所以它依然可見,但它已經失去了焦點故不可與使用者互動。(三)Stoped:當Activity被另外一個Activity覆蓋,失去焦點並不可見時處於Stoped狀態。 3、Activity生命週期
生命週期方法詳解:
官方流程圖:
代碼清單:生命週期方法測試(MainActivity.java)
1 package com.bothsunny.apps.a31_activity; 2 3 import android.support.v7.app.AppCompatActivity; 4 import android.os.Bundle; 5 6 import com.orhanobut.logger.Logger; 7 8 public class MainActivity extends AppCompatActivity { 9 10 /**11 * 當一個Activity建立時會調用該方法,我們可以在該方法中進行組件的初始化工作12 *13 * @param savedInstanceState14 */15 @Override16 protected void onCreate(Bundle savedInstanceState) {17 super.onCreate(savedInstanceState);18 setContentView(R.layout.activity_main);19 Logger.i("MainActivity-onCreate");20 }21 22 /**23 * 在Activity可見,但還不能進行互動時會調用該方法24 * 在onCreate之後調用25 */26 @Override27 protected void onStart() {28 super.onStart();29 Logger.i("MainActivity-onStart");30 }31 32 /**33 * 當Activity可以互動時調用34 * 在onStart之後調用,該方法被調用後就表示Activity進入啟用狀態35 * resumed狀態36 */37 @Override38 protected void onResume() {39 super.onResume();40 Logger.i("MainActivity-onResume");41 }42 43 /**44 * 一個從stoped狀態的Activity重新被啟用時調用45 * 接著會調用onStart()方法46 */47 @Override48 protected void onRestart() {49 super.onRestart();50 Logger.i("MainActivity-onRestart");51 }52 53 /**54 * 當前Activity被另一個Activity覆蓋,失去焦點,但還可見,不能互動55 * 那麼此時當前Activity進入paused狀態(暫停狀態)56 * 當此狀態下Activity重新擷取焦點時會再調用onResume()方法57 */58 @Override59 protected void onPause() {60 super.onPause();61 Logger.i("MainActivity-onPause");62 }63 64 /**65 * 當前Activity被另一個Activity完全覆蓋,不可見且不可互動66 * 那麼此時當前Activity進入了stoped狀態(停止狀態)67 * 此狀態下的Activity被重新顯示時,會調用onRestart()方法68 */69 @Override70 protected void onStop() {71 super.onStop();72 Logger.i("MainActivity-onStop");73 }74 75 /**76 * 當前Activity被銷毀時調用,表示結束生命週期77 */78 @Override79 protected void onDestroy() {80 super.onDestroy();81 Logger.i("MainActivity-onDestroy");82 }83 } 4、Activity傳遞資料 在Android中,不同的Activity執行個體可能運行在一個進程中,也可能運行在不同的進程中。因此我們需要一種特別的機制協助我們在Activity之間傳遞訊息。Android中通過Intent對象來表示一條資訊,一個Intent對象不僅包含這個訊息的目的地,還可以包含訊息的內容,這好比一封Email,其中不僅應該包含收件地址,還可以包含具體的內容。對於一個Intent對象,訊息“目的地”是必須的,而內容則是可選項。
Android核心組件 Activity組件