關於鎖屏和回到桌面的activity生命週期的疑問
阿新 • • 發佈:2019-02-19
問題
因為朋友的一個問題引發了對這個問題的探索,當然一如既往的先去百度了一把:”鎖定螢幕 activity的生命週期“,結果看了2篇比較靠前的帖子:
下面是複製的裡面的具體內容:
鎖屏分為兩個步驟,先是鎖定螢幕,再是黑屏
onCreate(在該方法裡鎖屏)—>onStart—>onResume
黑屏後:onPause
點亮屏幕後:onResume
實驗
然而我發現這與我的猜想完全不一樣,所以我決定自己寫個demo驗證一下。
public class MainActivity extends Activity {
private final String TAG = "MainActivity" ;
@Override
protected void onCreate(Bundle savedInstanceState) {
Log.d(TAG, "onCreate");
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
}
@Override
protected void onStart() {
Log.d(TAG, "onStart");
super.onStart();
}
@Override
protected void onNewIntent(Intent intent) {
Log.d(TAG, "onNewIntent");
super.onNewIntent(intent);
}
@Override
protected void onRestart() {
Log.d(TAG, "onRestart");
super.onRestart();
}
@Override
protected void onResume() {
Log.d(TAG, "onResume" );
super.onResume();
}
@Override
protected void onPause() {
Log.d(TAG, "onPause");
super.onPause();
}
@Override
protected void onStop() {
Log.d(TAG, "onStop");
super.onStop();
}
@Override
protected void onDestroy() {
Log.d(TAG, "onDestroy");
super.onDestroy();
}
}
結果
一、鎖屏和解鎖操作
1、按下鎖屏:
2、開啟螢幕
二、桌面和再次回到應用操作
1、回到桌面
2、再次回到應用
不難發現:這兩個操作走的生命週期是一樣的,而上面的帖子說不會鎖屏只會走onpause,我把專案的sdk,從5.1切換到2.3,也沒有發現這種情況。