【发布时间】:2013-10-12 20:35:58
【问题描述】:
我刚刚发现当设备启用锁屏时,会发生以下情况。 对于此活动,在清单中设置了 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
【问题讨论】:
-
自 2 天以来一直在努力解决这个问题,尝试了各种选择
标签: android android-activity locking lifecycle unlock