0

我有一个应用程序,它每 5 小时(从启动)有效地启动一个意图服务,以从网络中获取数据。

我想要实现的是如果没有网络连接(在获取时),订阅一些广播以收听网络何时可用并再次获取数据。

实现这一目标的最佳方法/技术是什么?

另外,在我以这种方式成功获取数据后,我可能想取消订阅(用于网络连接广播),并重置原始服务计划,以便在 5 小时内再次检查。

4

2 回答 2

0

您可以使用(SharedPreferences)http://developer.android.com/guide/topics/data/data-storage.html#pref 存储字符串 5 小时和字符串验证真假(0/1),然后检查字符串验证每 5 小时它是真或假,并在每 4.59 小时完成更改验证

于 2013-05-30T10:13:33.380 回答
0

最后,我所做的是允许我的广播接收器通过清单(启动我的意图服务)来监听android.net.conn.CONNECTIVITY_CHANGE。即这使我能够监听网络中的变化。

现在在我的意图服务中,如果由于网络连接而无法获取数据,那么我将在共享首选项中设置一个名为“waiting_for_connection”的标志;

如果在网络上发生更改,我将检查“waiting_for_connection”标志以及是否已设置。如果为假,那么我会返回;否则我只会在有网络的情况下继续获取数据。如果成功,我会重置标志。

于 2013-05-31T11:05:01.203 回答