【问题标题】:why horizontal application create vertical activity after onPause()为什么水平应用程序在 onPause() 之后创建垂直活动
【发布时间】: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


【解决方案1】:

使用 android:configChanges="orientation|screenSize" 解决了这个问题。小菜一碟。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-07-24
    • 2016-02-14
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多