当计划服务中的网络连接可用时,从网络获取数据

时间:2013-05-30 10:03:41

标签: android broadcastreceiver android-service intentservice android-networking

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

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

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

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

2 个答案:

答案 0 :(得分:0)

你可以使用(SharedPreferences)http://developer.android.com/guide/topics/data/data-storage.html#pref 对于商店字符串5小时和字符串验证与真假(0/1),并检查字符串验证每5小时它是真还是假,并在每4.59小时完成更改验证

答案 1 :(得分:0)

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

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

如果在网络上更改,我会检查“waiting_for_connection”标志并设置。如果不对,那我就回来;否则我只会在有网络的情况下继续获取数据。如果成功,我会重置旗帜。