在 chromeos 上关闭 android 应用程序时保存状态

Saving state when closing android app on chromeos

我们的 android 应用程序在通过 (Activity::OnSaveInstanceState) 被杀死之前保存状态。 如果应用程序在被杀死之前重新接地,则效果很好。 (在明确关闭应用程序之前必须做的事情 android) 但是,在 ChromeOS 上,android 应用程序无需接地即可终止。

应用程序的右上角有一个 'x',它会关闭应用程序而不将其重新接地。

如果应用程序以这种方式结束,OnSaveInstanceState 不会出现 运行(或者它可能没有足够的时间完成?),因此应用程序状态不会被保存。

问:有没有办法:

  1. Disable/hide 这个 'x' 用于 android 应用?
  2. 即使应用程序以这种方式结束,也会保存状态。

注意:chrome 上的 android 应用程序也有 'back arrow'(此屏幕截图中未显示 - 工具栏左上角),这会关闭该应用程序。当应用程序以这种方式关闭时,状态会按预期保存。

不要在 Activity::OnSaveInstanceState 中保存状态,而是使用 Activity::OnPause。

After setting up debugging from Visual Studio 对于 ChromeBook,我确认 Activity::OnSaveInstanceState 而不是 被调用,当点击 'x' 时,(喜欢它是当一个 android 应用程序作为背景,然后明确关闭它时

然而 Activity::OnPauseActivity::OnDestroy 被调用。

尽管名称与 lots of advice, it seems that it's not safe 相反,但在 Activity::OnSaveInstanceState

中保存状态

将状态保存移动到 Activity::OnPause 对我有用。