Android Chrome 上的应用 OS 每次按下 "Maximize" 按钮时都会重新启动

Android app on Chrome OS restarts each time is pressed "Maximize" button

Google play 现在在某些 Chrome 书籍的 Beta 版中运行。我在 google play 上有应用程序,在将其下载到 Chromebook 后,我遇到了这个问题:应用程序的 Activity 重新启动 每次按下 "Maximize" 按钮。当然,我想让我的应用程序与 Chrome OS 兼容。我不确定问题出在哪里,在 android 设备上运行良好。

这个问题可以用 Android studio 制作的简单 hello world 项目很好地重现(我使用的是 1.5 版):

在 Android 工作室中按 "Start a new Android Studio project",填写名称并按下一步。我为 API 8+ 设置了兼容性,然后选择 Empty activity。项目设置为 min Sdk 8 和目标 sdk 23。我在 onCreate 添加了简单的 Toast 消息:

Toast.makeText(this, "Recreated", Toast.LENGTH_SHORT).show();

生成的 apk 可以在 Chrome OS 上进行测试。每次按下 "Maximize" 按钮我都会看到 "Recreated" 消息。

我没有对 AndroidManifest.xml 做任何事情。但我测试了标志:

        android:configChanges="orientation|keyboardHidden"
        android:windowSoftInputMode="adjustResize"

没有成功。

这是我的 Activity 代码的样子:

public class MainActivity extends Activity {

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);
    Toast.makeText(this, "Recreated", Toast.LENGTH_SHORT).show();
}

@Override
public void onConfigurationChanged(Configuration newConfig)
{
    super.onConfigurationChanged(newConfig);
    Toast.makeText(this, "onConfigurationChanged", Toast.LENGTH_SHORT).show();
} }

我预计每次按下 "Maximize" 按钮时都会触发 onConfigurationChanged 事件,但实际上却调用了 onCreate().

请问我必须做些什么来防止 Activity 每次都被重新启动是按下 "Maximize" 按钮。以及如何处理 "resize" 事件。

对清单中的 Activity 使用 android:configChanges="orientation|keyboardHidden|screenLayout|screenSize|smallest‌​ScreenSize" 应该会有帮助。

但是,不幸的是,建议在配置更改时终止 activity。