我已经获得了多种解决方案,我认为这是一种常见的情况。不幸的是,似乎都没有按预期工作。
我创建了一个非常简单的安卓游戏。用户可以邀请朋友玩游戏,并且在游戏生命周期中他们会进行一些活动。所有转弯和数据都存储在远程服务器中,该服务器通过Web服务公开数据。每次发送邀请或对手完成转弯时,都会通过该服务提示用户轮到他们。
该服务提示用户使用标准的Android通知告诉他们轮到他们了。我不希望该服务在用户查看游戏时轮询Web服务或显示通知(他们已经知道它是否在那里转动)。
我尝试了以下解决方案但没有取得任何成功。
在主要活动的onPause方法中启动服务,并在主要活动的onResume方法中停止服务。
将每个活动绑定到服务,并在所有活动的相同onPause / onResume方法中设置一个布尔(运行)标志。
在所有活动的onPause方法中启动服务,并在所有活动的onResume方法中停止服务。
非常感谢任何帮助。示例代码不是必需的,但如果解决方案比上述概念更复杂,将不胜感激。
谢谢。
答案 0 :(得分:1)
请勿使用服务,使用Google Cloud Messaging并在广播的接收方中检查游戏状态,然后决定是否显示通知。轮询通常很糟糕,不必要地使用数据和电池。