互联网断开前的广播接收器

时间:2016-03-23 13:21:37

标签: java android sockets server

我想知道如果在Android上有可能在用户点击wifi断开连接按钮运行方法之后获得广播在设备断开互联网之前,我已经使用广播接收器来捕捉网络变化但是它在互联网断开后执行我使用下面的代码:

public class InternetReceiver extends BroadcastReceiver {

@Override
public void onReceive(final Context context, final Intent intent) {
    if (isNetworkAvailable(context) && !isMyServiceRunning(MessagingService.class,context)){
        Intent i = new Intent(context,MessagingService.class);
        context.startService(i);
        Log.e("service started ","true");
    }

}

private boolean isMyServiceRunning(Class<?> serviceClass, Context c) {
    ActivityManager manager = (ActivityManager) c.getSystemService(Context.ACTIVITY_SERVICE);
    for (ActivityManager.RunningServiceInfo service : manager.getRunningServices(Integer.MAX_VALUE)) {
        if (serviceClass.getName().equals(service.service.getClassName())) {
            return true;
        }
    }
    return false;
}


public boolean isNetworkAvailable(Context c) {
    ConnectivityManager connectivityManager
            = (ConnectivityManager)  c.getSystemService(Context.CONNECTIVITY_SERVICE);
    NetworkInfo activeNetworkInfo = connectivityManager.getActiveNetworkInfo();
    return activeNetworkInfo != null && activeNetworkInfo.isConnected();
}
}

我使用上面的代码来连接互联网后运行服务,但这只是一个例子

1 个答案:

答案 0 :(得分:0)

编辑:我认为你想对用户点击wifi断开按钮做出反应

您可以使用Android的WifiManager来检查无线连接的状态,这提供了获取有关您的WiFi环境和连接的信息的一些可能性。

  

可以建立或拆除连接,并可以查询有关网络状态的动态信息。

来源:http://developer.android.com/reference/android/net/wifi/WifiManager.html

看看以下内容。我想这对你有帮助。

  

WIFI_STATE_CHANGED_ACTION广播意图操作,表示已启用,禁用,启用,禁用或未知Wi-Fi。

     

int WIFI_STATE_DISABLED Wi-Fi已停用。

     

int WIFI_STATE_DISABLING目前正在禁用Wi-Fi。