0

我们的 android 应用在通过 (Activity::OnSaveInstanceState) 杀死之前保存状态。如果应用程序在被杀死之前重新接地,则效果很好。(在明确关闭应用程序 android 之前必须这样做)但是在 ChromeOS 上,android 应用程序可以在不将它们接地的情况下被杀死。

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

在 chromeos 上运行的 android 应用程序显示关闭按钮

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

问:是否有:

  1. 为 Android 应用禁用/隐藏此“x”?
  2. 即使应用程序以这种方式结束,也可以保存状态。

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

4

1 回答 1

0

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

在从 Visual Studio 为 ChromeBook 设置调试后,我确认在单击“x”Activity::OnSaveInstanceState没有调用它(就像当一个 android 应用程序在后台运行时一样,然后显式关闭它

然而Activity::OnPause并被Activity::OnDestroy称为。

尽管它的名字和许多建议相反,但将状态保存Activity::OnSaveInstanceState

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

于 2020-04-20T23:20:51.767 回答