制作后台线程以检查网络是否可用,并在可用时通知

时间:2011-10-04 08:30:34

标签: android

我制作了一项服务和一项活动,我需要按照以下方式进行处理

就像服务在应用程序启动时自动启动一样,并定期检查网络是否可用,以及何时可用,然后通知用户。

我如何做到这一点,我想要一些警报管理器或闪烁屏幕,直到网络可用

谢谢

1 个答案:

答案 0 :(得分:5)

您应该在连接状态发生变化时触发BroadcastReceiver,方法是在manifest中添加:

   <receiver
        android:name=".receivers.NetworkChangeReceiver"
        android:label="NetworkChangeReceiver">
        <intent-filter>
            <action
                android:name="android.net.conn.CONNECTIVITY_CHANGE" />
            <action
                android:name="android.net.wifi.WIFI_STATE_CHANGED" />
        </intent-filter>
    </receiver>

然后在receiver中,您可以检查是否有连接:

   public class NetworkChangeReceiver extends BroadcastReceiver{

   @Override
   public void onReceive(Context context, Intent intent) {
       ConnectivityManager cm=(ConnectivityManager) context.getSystemService(Context.CONNECTIVITY_SERVICE);
       if(cm.getActiveNetworkInfo()!=null&&cm.getActiveNetworkInfo().isConnected()){
           //Send a broadcast to your service or activity that you have network
           //...
       }else{
           LOG.i("Network UNAVAILABLE");
       }
   }

}