開發應用時,會基於生命週期實現某些功能,透過lifecycle-aware 元件感知應用元件生命週期的變化,透過事件與狀態這兩類來感知應用元件的生命週期變化。
事件
Lifecycle.Event 生命週期的事件,分別是:ON_CREATE、ON_START、ON_RESUME、ON_PAUSE、ON_STOP、ON_DESTROY、ON_ANY。最後一種事件可以代表前面任意一種。
ex,當 Activity onCreate() 生命週期方法被呼叫時會產生 ON_CREATE 事件,觀察者可以監聽該事件以便處理Activity此時的生命週期。
狀態
Lifecycle.State 表示生命週期的狀態分別是:INITIALIZED、 DESTROYED、CREATED、STARTED、RESUMED。
ex,當 Activity 進入 INITIALIZED 狀態,在 onCreate() 生命週期方法呼叫後進入 CREATED 狀態,在 onStart() 生命週期方法呼叫後進入 STARTED 狀態,在 onResume() 生命週期方法呼叫後進入 RESUMED 狀態。
class CheckObserver implements LifecycleObserver {
private static final String TAG = CheckObserver.class.getSimpleName();
@OnLifecycleEvent(Lifecycle.Event.ON_CREATE)
public void onCreate() {
Log.d(TAG, "onCreate event");
}
@OnLifecycleEvent(Lifecycle.Event.ON_START)
public void onStart() {
Log.d(TAG, "onStart event");
}
@OnLifecycleEvent(Lifecycle.Event.ON_RESUME)
public void onResume() {
Log.d(TAG, "onResume event");
}
@OnLifecycleEvent(Lifecycle.Event.ON_PAUSE)
public void onPause() {
Log.d(TAG, "onPause event");
}
}
public class MainActivity extends AppCompatActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
// ...
getLifecycle().addObserver(new CheckObserver());
}
}
reference :https://developer.android.com/reference/android/arch/lifecycle/Lifecycle.State
reference :https://developer.android.com/reference/android/arch/lifecycle/Lifecycle.Event
reference :https://www.mdeditor.tw/pl/2U7U/zh-tw