无线网络可用后立即重启服务

时间:2014-06-04 13:55:53

标签: android broadcastreceiver android-service

我有一个小服务,每天早上6点下载一个文件。这完全没问题(我用AlarmManager解决了这个问题),但是如果早上6点没有互联网连接,我想在互联网连接可用时立即重启这项服务。该服务是一个开始的服务,从不受约束。

每当没有可用的互联网连接时,我已经在我的服务中调用了一个名为“onNoInternetConnection”的方法,所以这已经正确实现并且工作正常,但是因为我是android的新手我在关于如何解决的问题上有点迷失在互联网连接可用后立即重启我的服务。

我考虑过实现一个广播接收器来监听连接变化,但我遇到了不同的问题,比如何时注册或取消注册接收器以及如何避免接收器在早上6点之前不启动服务(这很重要) )...

这是实现这一目标的正确方法吗?如果是,确切地说,我该如何注册我的广播接收器?如果没有:你有其他方法来解决这个问题吗?

提前致谢!如果您需要更多信息,请与我们联系。

1 个答案:

答案 0 :(得分:1)

您不需要动态注册接收器。只需在Manifest

中执行此操作即可
<receiver android:name=".ConnectivityChangeReceiver">
    <intent-filter>
        <action android:name="android.net.conn.CONNECTIVITY_CHANGE" />
    </intent-filter>
</receiver>

然后使用onReceive方法检查互联网连接:

public class ConnectivityChangeReceiver extends WakefulBroadcastReceiver{
    @Override
    public void onReceive(Context context, Intent intent) {
        //if connected to the internet then start service if not the do nothing
    }
}