我制作了一项服务和一项活动,我需要按照以下方式进行处理
就像服务在应用程序启动时自动启动一样,并定期检查网络是否可用,以及何时可用,然后通知用户。
我如何做到这一点,我想要一些警报管理器或闪烁屏幕,直到网络可用
谢谢
答案 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");
}
}
}