我有一个个性化的提要,可以选择对评论点赞。当用户点击“赞”按钮时,应用程序检查互联网连接,如果互联网可用,则 api 命中成功,如果互联网出现故障,comment_id 将存储在 db 中。我希望当互联网恢复时,应该使用这些 comment_id 进行 api 调用。
我试过广播接收器,但在改变互联网连接时广播接收器没有初始化或唤醒。
这是 connectivityReceiver 代码。
public class ConnectivityReceiver extends BroadcastReceiver {
@Override
public void onReceive(Context context, Intent arg1) {
ConnectivityManager cm = (ConnectivityManager) context
.getSystemService(Context.CONNECTIVITY_SERVICE);
NetworkInfo activeNetwork = cm.getActiveNetworkInfo();
boolean isConnected = activeNetwork != null
&& activeNetwork.isConnectedOrConnecting();
Log.d("LLLL",""+isConnected);
}
}
这是我的 list 文件。
<receiver
android:name=".backgroundServices.ConnectivityReceiver"
android:enabled="true">
<intent-filter>
<action android:name="android.net.conn.CONNECTIVITY_CHANGE"/>
</intent-filter>
</receiver>
最佳答案
要检查互联网,您可以使用此功能。
public boolean hasInternet() {
ConnectivityManager connectivity = (ConnectivityManager) getSystemService(Context.CONNECTIVITY_SERVICE);
if (connectivity != null) {
NetworkInfo[] info = connectivity.getAllNetworkInfo();
if (info != null)
for (int i = 0; i < info.length; i++)
if (info[i].getState() == NetworkInfo.State.CONNECTED) {
return true;
}
}
return false;}
如果互联网正常,此函数将返回 true。 一旦您从执行连接的功能中获得真实信息,请制作一个计时器来一次又一次地检查互联网。
关于android - 需要创建一个在互联网可用时上传数据的后台服务,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50810485/