我有一个每天 24 小时运行的服务。这个服务是由一个 Activity 启动的,它运行得无法定义。在服务内部,每 1 分钟运行一个单独的线程并从服务器获取数据。因此,每当更新时,我都会更新sendBroadcast
List Fragment 并从服务接收消息并重新启动 Loader 以更新 List Fragment。
- 这种方法正确与否?
- 如果列表片段(有广播接收器)破坏了
sendBroadcast
产品有什么问题吗?
我有一个每天 24 小时运行的服务。这个服务是由一个 Activity 启动的,它运行得无法定义。在服务内部,每 1 分钟运行一个单独的线程并从服务器获取数据。因此,每当更新时,我都会更新sendBroadcast
List Fragment 并从服务接收消息并重新启动 Loader 以更新 List Fragment。
sendBroadcast
产品有什么问题吗?报废整个事情,从头开始 :) 在 Android 上运行“每天 24 小时”几乎是不可能的,因为一旦屏幕关闭,它就会进入睡眠状态。如果你强迫它保持开启状态,你会很快吃掉电池。所以报废那部分。每分钟从服务器更新数据也是一个坏主意:太多的网络调用会消耗电池,并且在 3G 网络上可能需要很长时间。此外,当用户在另一个应用程序中时,他们可能不关心这些更新,因此您将浪费资源来获取没人会看到的东西。
如果需要,请使用 AralamManager 为您的服务安排定期更新。重新考虑“每分钟”部分。让活动注册自己以进行更新onStart()
并取消注册onStop()
。