【发布时间】:2016-02-25 13:17:53
【问题描述】:
我正在开发一个可以每半小时检查一次网络数据的应用程序,我需要确保它在电源打开的情况下一直运行。 目前,我的应用程序的结构是这样的:
- main_activity:
onCreate()中的AlarmManager - 报警接收器:
启动服务 获取服务的 partial_wl - 服务:
使用 StrictMode 获取网络数据 如果需要数据,则弹出 activity_2 - activity_2:
振动 退出按钮(activity_2.this.finish())
但在测试中,我发现服务将在前 30 分钟后停止(被终止)。另外,如果我在服务中启动一个用于联网的线程而不是使用StrictMode,它会在屏幕锁定后5分钟内被杀死。
希望有人可以对此提出建议。真是令人不安。 非常感谢。
【问题讨论】:
-
运行后台服务只是为了检查是否有新数据可用不是一个好主意。尝试使用 GCM 实现相同的功能。
-
您不需要创建服务。 AlarmManager 每半小时重复一次不精确的警报就可以了。事实上,它就是为此目的而制作的。如果数据可用,我还建议通知,而不是自己显示活动。这样,用户就会收到通知,并可以在方便时打开已存在数据的活动。
标签: android multithreading service wakelock