为什么模拟器在方向更改时没有正常运行?

时间:2014-01-30 05:33:23

标签: java android screen-orientation

据我所知,默认情况下,当设备旋转时,当前活动将被销毁并重新创建。我正在使用LeftCTRL + F12旋转仿真器,但它没有被破坏。我已登录OnDestroyOnCreate以及OnStartOnResume,但在我旋转设备时,这些都没有启动。

在:

before the change

后:

after the change

的AndroidManifest.xml:

<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
    package="com.geo_quiz"
    android:versionCode="1"
    android:versionName="1.0" >

    <uses-sdk
        android:minSdkVersion="8"
        android:targetSdkVersion="18" />

    <application
        android:allowBackup="true"
        android:icon="@drawable/ic_launcher"
        android:label="@string/app_name"
        android:theme="@style/AppTheme" >
        <activity
            android:name="com.geo_quiz.MainActivity"
            android:label="@string/app_name" >
            <intent-filter>
                <action android:name="android.intent.action.MAIN" />

                <category android:name="android.intent.category.LAUNCHER" />
            </intent-filter>
        </activity>
    </application>

</manifest>

5 个答案:

答案 0 :(得分:1)

我想我知道答案。在Android Studio 3.4.1(撰写本文时的最新信息)上,针对Pixel 2,API级别28的模拟器使用了相同的问题。

我是通过以下方式解决此问题的:拖动模拟器上的“快速设置”下拉菜单(从模拟器屏幕的右上角单击并拖动),并确保启用了自动旋转。

当我选中它时,它不是,所以我启用了它。启用它后,模拟器可以正常工作:)。

希望这对您有帮助!

答案 1 :(得分:0)

请在此处查看emulator keyboard mapping

希望有助于。

答案 2 :(得分:0)

根据您的屏幕截图,设备似乎没有改变方向。您的活动仍显示纵向布局。唯一改变的是显示窗口的方向。当方向发生变化时,您的文字应该是直立的,在截图中他们的“向上”指向左侧。 在真实设备上运行它,并将调用onDestroy。 100%的时间。保证

编辑以下Oleksiy评论:

  1. 首先尝试numpad7,然后尝试CMD + f12。
  2. 还要确保您的ADT是最新的(不仅仅是您的构建工具) - 您可以通过Eclipse&gt;来实现这一点。检查更新。
  3. 如果上述方法无效,请尝试以编程方式执行此操作,以便调试代码(可在真实设备上运行):在onCreate中调用setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_LANDSCAPE);
  4. 您不应该使用模拟器进行开发。它太慢而且不可靠。一堆东​​西不会在那里工作。使用您的设备连接。你会省事自己。

    我还发现了这个bug报告,它被标记为“无法生产”:http://code.google.com/p/android/issues/detail?id=17963

答案 3 :(得分:0)

首先转到相机应用程序,然后运行您的应用程序。相机应用程序会自动更改您的视图。

答案 4 :(得分:0)

您的模拟设备(例如电话)(而非模拟设备)可能未打开旋转检测功能。在手机的设置中,打开旋转检测。这是该图标的屏幕截图。

1