网络连接状态更改

时间:2018-02-20 10:47:09

标签: android

我想开发一个可以离线工作的应用程序,但我也想在设备上线时将这个离线值发送到服务器。我使用广播接收器来触发服务(当互联网连接到达时)但是它不再受支持,这种情况的替代方案是什么?

1 个答案:

答案 0 :(得分:0)

尝试此方法

  
      
  1. 注册接收器
  2.   
<receiver android:name=".broadcast.DataSync"
            android:exported="true"
            android:enabled="true">
            <intent-filter>
                <action android:name="android.intent.action.USER_PRESENT"/>
            </intent-filter>
        </receiver>
  
      
  1. DataSync
  2. 中   

onReceive方法中检查互联网连接,

if(isNetworkAvailable()){
    //do your method call for send data to server
}



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

别忘了添加清单文件。

<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE"/>