传统做法
使用对象感知Activity的生命周期
public interface ILifeCycle {
void onStart();
void onResume();
void onPause();
void onStop();
}
public class MyLifeCycle implements ILifeCycle {
@Override
public void onStart() {
//做一些事情
}
@Override
public void onResume() {
//做一些事情
}
@Override
public void onPause() {
//做一些事情
}
@Override
public void onStop() {
//做一些事情
}
}
public class MainActivity extends AppCompatActivity {
MyLifeCycle myLifeCycle = new MyLifeCycle();
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
}
@Override
protected void onStart() {
super.onStart();
myLifeCycle.onStart();
}
@Override
protected void onResume() {
super.onResume();
myLifeCycle.onResume();
}
@Override
protected void onPause() {
super.onPause();
myLifeCycle.onPause();
}
@Override
protected void onStop() {
super.onStop();
myLifeCycle.onStop();
}
}
使用Lifecycle
/**
* 我们用这个观查者来盯好需要感知生命周期的对象
*/
public class MyLifeObserver implements LifecycleObserver {
@OnLifecycleEvent(Lifecycle.Event.ON_START)
private void onStartHongx() {
Log.i("hongx", "onStartHongx");
}
@OnLifecycleEvent(Lifecycle.Event.ON_RESUME)
private void onResumeHongx() {
Log.i("hongx", "onResumeHongx");
}
@OnLifecycleEvent(Lifecycle.Event.ON_PAUSE)
private void onPauseHongx() {
Log.i("hongx", "onPauseHongx");
}
@OnLifecycleEvent(Lifecycle.Event.ON_STOP)
private void onStopHongx() {
Log.i("hongx", "onStopHongx");
}
}
public class MainActivity extends AppCompatActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
//完成绑定
getLifecycle().addObserver(new MyLifeObserver());
}