【发布时间】:2019-01-11 03:23:21
【问题描述】:
我的应用应该只是水平的。在 AndroidManifest.xml 我有android:screenOrientation="sensorLandscape"。
但是当我按下电源按钮(关闭设备)然后再次按下电源按钮(打开设备)时,我可以看到一些问题。通过调试过程,我可以看到我的应用程序经历了以下步骤:
按下电源按钮->onPause()->onSaveInstance()->onStop()->onDestroy()->onCreate()->onStart()->onResume()->onPause()。我可以看到创建了 HORIZONTAL 活动,但它的大小等于垂直屏幕!
然后:
按下电源按钮->onResume()->onPause()->onSaveInstante()->onStop()->onDestroy()->onCreate()->onStart ()->onResume()。 并创建了所需的水平活动。
我的错误在哪里?我应该首先在任何地方设置屏幕尺寸吗?
我理解了这个问题:当我按下电源按钮时,方向发生了变化(锁定屏幕默认为纵向),这导致调用 onCreate()。
那我该怎么办?
【问题讨论】:
-
在清单中使用这个而不是 sensorLandscape ..android:screenOrientation="landscape"
-
它不起作用(你能告诉我为什么需要在暂停之前创建新活动吗?
-
检查您是否以编程方式在代码中的任何位置更改了方向?
-
在 setContentView 之前的 onCreate 中写入 setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_LANDSCAPE); // 只在横向模式下运行你的应用程序
-
不,一点也不。
标签: android screen-orientation