gpt4 book ai didi

android - 在 onSaveInstanceState() 中设置标志以确定 onDestroy() 中的退出类型

转载 作者:塔克拉玛干 更新时间:2023-11-02 09:00:06 26 4
gpt4 key购买 nike

对于在线游戏,最好知道 Android Activity 的 onDestroy() 是否仅因为 Android 将要重新创建它(例如设备旋转)而被调用,或者如果用户选择退出游戏。

我的计划是在 Android 可能重新创建 Activity 时在 ActivityonSaveInstanceState() 中设置一个标志:

private boolean mDestroyedForReCreation;
...
protected void onSaveInstanceState() {
...
mDestroyedForReCreation = true;
}

如果你这样做了,你可以检查 onDestroy() 中的 mDestroyedForReCreation:

  • 如果设置了标志 (true),则不要将用户从在线游戏中解雇。
  • 如果未设置标志 (false),则将用户从在线游戏中解雇,因为他自愿退出游戏。

这是正确的做法吗?如果是,是否推荐或有更好的解决方案?我希望如此,因为我真的不喜欢那个解决方案 ...

最佳答案

我建议您从 Activity 的生命周期中删除此类游戏逻辑。创建服务。如果没有人绑定(bind) - 所有 Activity 都死了。是否有人受约束 - 继续工作。

如果不想创建服务,可以使用onRetainNonConfigurationInstance方法。 Here is example .

您应该使用 onRetainNonConfigurationInstance 因为它由系统调用,作为由于配置更改而销毁 Activity 的一部分,当已知将立即为新配置创建新实例时. onSaveInstanceState 在 android 将终止 Activity 并可能有时或可能不恢复它时调用)。

关于android - 在 onSaveInstanceState() 中设置标志以确定 onDestroy() 中的退出类型,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14432902/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com