官方框架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去綁定相應的功能即可。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章