我发现当设备启用锁屏时,以下情况会发生。在清单文件中设置android:screenOrientation="landscape"。
然后我以竖屏模式执行以下操作:
- 用户打开活动。
- 调用onCreated()。
- 调用onStart()。
- 调用onResume()。
- 用户锁定设备 4.5 onPause()被调用。
- 调用onDestroy()。
- 调用onCreate()。
- 调用onStart()。
- 调用onResume(),8.5 onPause()被调用。
- 用户解锁设备。
- 调用onResume()。
- 调用onDestroy()。
- 调用onCreate()。
- 调用onStart()。
- 调用onResume()。
好吧,我不明白为什么在屏幕关闭后会执行6、7、8步骤。。同样,我不明白为什么会执行11、12、13、14步骤。当我锁定和解锁设备时是否发生了一些奇怪的事情? 我突然对活动的生命周期感到困惑..有人能澄清吗?
附上代码和日志信息。
package com.example.wf;
import android.app.Activity;
import android.os.Bundle;
import android.util.Log;
public class MainActivity extends Activity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
Log.d("log", "oncreate");
}
@Override
protected void onResume() {
super.onResume();
Log.d("log", "onresume");
};
@Override
protected void onStart() {
super.onStart();
Log.d("log", "onstart");
};
@Override
protected void onPause() {
super.onStart();
Log.d("log", "onpause");
};
@Override
protected void onDestroy() {
Log.d("log", "ondestroy");
super.onDestroy();
};
}
日志消息
10-05 23:11:07.994: D/log(23810): oncreate
10-05 23:11:07.994: D/log(23810): onstart
10-05 23:11:07.994: D/log(23810): onresume
// LOCK DEVICE
10-05 23:11:19.957: D/log(23810): ondestroy
10-05 23:11:20.007: D/log(23810): oncreate
10-05 23:11:20.007: D/log(23810): onstart
10-05 23:11:20.007: D/log(23810): onresume
// UNLOCK DEVICE
10-05 23:11:57.407: D/log(23810): onresume
10-05 23:11:57.537: D/log(23810): ondestroy
10-05 23:11:57.587: D/log(23810): oncreate
10-05 23:11:57.587: D/log(23810): onstart
10-05 23:11:57.587: D/log(23810): onresume