gpt4 book ai didi

Android 服务未按预期启动/停止

转载 作者:行者123 更新时间:2023-11-30 04:06:10 25 4
gpt4 key购买 nike

针对我认为常见的情况,我得到了多种解决方案。不幸的是,似乎没有一个能按预期工作。

我创建了一个非常简单的安卓游戏。用户可以邀请 friend 一起玩,并且在游戏生命周期中他们会经历一些 Activity 。所有轮次和数据都存储在远程服务器中,该服务器通过 Web 服务公开数据。每次发送邀请或对手完成他们的回合时,系统都会通过该服务提示用户开始他们的回合。

该服务使用标准的安卓通知提示用户,告诉他们轮到他们了。我不希望该服务在用户查看游戏时轮询 Web 服务或显示通知(他们已经知道是否轮到它了)。

我尝试了以下解决方案,但均未成功。

  1. 在主 Activity 的onPause方法中启动服务,在主 Activity 的onResume方法中停止服务。

    • 问题 - 每次用户离开 Activity 去另一个 Activity 时,服务都会启动。用户可能正在写东西或创建邀请,系统会提示他们轮到他们。
  2. 将每个 Activity 绑定(bind)到服务,并在所有 Activity 的相同 onPause/onResume 方法中设置 bool (运行)标志。

    • 问题 - 这似乎合乎逻辑,但出于某种原因,该服务从未提供通知。这可能是用户错误,但我不确定这是否是正确的解决方案。
  3. 在所有Activity的onPause方法中启动服务,在所有Activity的onResume方法中停止服务。

    • 问题 - 根据我在屏幕上呈现的 toasts,显示服务的状态,这按预期工作。问题是在服务关闭时向用户显示通知。显然我的 toast 有误导性。

非常感谢任何帮助。示例代码不是必需的,但如果解决方案比上述概念更复杂,我们将不胜感激。

谢谢。

最佳答案

不使用服务,使用 Google Cloud Messaging 并在广播接收器中检查游戏状态,然后决定是否显示通知。轮询通常很糟糕,不必要地使用数据和电池。

关于Android 服务未按预期启动/停止,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11620492/

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