2012-03-30 32 views
14

当我按下电源键,屏幕将自动关闭(完全黑),系统破坏我的活动,然后重新创建它:活动生命周期X电源按钮X锁屏

03-28 22:48:00.934: V/[BB](5809): [GameControl] onPause 
03-28 22:48:01.444: V/[BB](5809): [GameControl] onDestroy 
03-28 22:48:01.724: V/[BB](5809): [GameControl] onCreate 
03-28 22:48:03.016: V/[BB](5809): [GameControl] onResume 
03-28 22:48:03.016: V/[BB](5809): [GameControl] onPause 

这是因为我的活动引起有一个固定的方向(风景)和锁定屏幕是肖像。

我通过设置一个固定的纵向方向来测试这个理论,并且这个问题没有发生。我也检查了getResources()。getConfiguration()的值:

{ scale=1.0 imsi=724/31 loc=pt_BR touch=3 keys=2/1/1 nav=1/1 orien=2 layout=17 uiMode=17 seq=36} 
{ scale=1.0 imsi=724/31 loc=pt_BR touch=3 keys=2/1/1 nav=1/1 orien=1 layout=17 uiMode=17 seq=37} 
{ scale=1.0 imsi=724/31 loc=pt_BR touch=3 keys=2/1/1 nav=1/1 orien=2 layout=17 uiMode=17 seq=38} 

如何避免这种情况? 我不希望我的活动被锁屏破坏!

+0

我不知道具体的答案,但你应该总是假设当你的活动不再活跃时,系统可能会在没有警告的情况下杀死它。 – Simon 2012-03-30 18:15:04

+0

@thiagolr请确切地告诉我当你打开电源按钮时发生了什么?你的屏幕是完全黑暗的?你能看到你的活动吗? – minhaz 2012-03-30 19:01:58

+0

是的,屏幕关闭(完全黑暗),并发生上述日志(当屏幕关闭时)。 – thiagolr 2012-03-30 19:39:42

回答

10

解决的办法是你<activity>元素添加

android:configChanges="orientation|keyboardHidden|screenSize" 

AndroidManifest.xml

+2

如果您的API级别为13或更高,您将需要android:configChanges =“orientation | screenSize”。请注意,如果您的minsdk小于13,它将无法识别“screenSize”,因此唯一的选择是将您的目标SDK降低到最小值。这很烦人,因为它会迫使你的应用在屏幕边缘有一个软件菜单栏。 – 2012-12-27 17:46:18