官方框架Android Architecture Components使用篇一
本篇開始介紹Android的最新官方推薦框架
第一個元件Lifecycle
個人理解為功能A伴隨著activity或fragment的生命週期來啟動和停止
1、新增google maven repository
repositories { google()//google maven repository jcenter() }
2、新增依賴
implementation "android.arch.lifecycle:runtime:1.0.3" annotationProcessor "android.arch.lifecycle:compiler:1.0.0" implementation "android.arch.lifecycle:common-java8:1.0.0"
3、建立一個功能A:MyObserver類,需要實現LifecycleObserver。
這裡定義一堆方法,使用註解的形式去關聯相應的生命週期方法
public class MyObserver implements LifecycleObserver { final String TAG = getClass().getSimpleName(); @OnLifecycleEvent(Lifecycle.Event.ON_START) public void onStart() { Log.d(TAG, "onStart: "); } @OnLifecycleEvent(Lifecycle.Event.ON_CREATE) public void onCreate() { Log.d(TAG, "onCreate: "); } @OnLifecycleEvent(Lifecycle.Event.ON_RESUME) public void onResume() { Log.d(TAG, "onResume: "); } @OnLifecycleEvent(Lifecycle.Event.ON_PAUSE) public void onPause() { Log.d(TAG, "onPause: "); } }
4、在activity中繫結我們的功能A,需要實現LifecycleOwner
public class LifeCycleActivity extends AppCompatActivity implements LifecycleOwner{ @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_life_cycle); getLifecycle().addObserver(new MyObserver()); }
到此,我們的功能A就伴隨著activity的生命週期了,當我們開啟activity,功能A中關聯的方法也相應激活了
12-05 22:43:01.624 6618-6618/com.example.space.testas3 D/MyObserver: onCreate: 12-05 22:43:01.626 6618-6618/com.example.space.testas3 D/MyObserver: onStart: 12-05 22:43:01.626 6618-6618/com.example.space.testas3 D/MyObserver: onResume:
當我按home鍵
12-05 22:45:01.067 6618-6618/com.example.space.testas3 D/MyObserver: onPause:
再開啟app
12-05 22:45:07.713 6618-6618/com.example.space.testas3 D/MyObserver: onStart: 12-05 22:45:07.713 6618-6618/com.example.space.testas3 D/MyObserver: onResume:
當我在看官方文件時
他的demo中還需要實現LifecycleOwner的getLifecycle()方法,不過我看了最新的原始碼中SupportActivity類已經幫我們建立好了,所以我們只需getLifecycle去繫結相應的功能即可。