Android 临时存储JSON对象,并在互联网可用时发布到Volley
我在应用程序中使用了Android 临时存储JSON对象,并在互联网可用时发布到Volley,android,json,rest,android-volley,Android,Json,Rest,Android Volley,我在应用程序中使用了Volley。我正在使用RESTApi向服务器发送数据。这是对服务器的JSONPOST请求 private void add() { String NetworkStatus = biz.fyra.bookapp.utils.NetworkStatus.checkConnection(getContext()); if (NetworkStatus.equals("false")) { alert.noInternetA
Volley
。我正在使用REST
Api向服务器发送数据。这是对服务器的JSONPOST
请求
private void add() {
String NetworkStatus = biz.fyra.bookapp.utils.NetworkStatus.checkConnection(getContext());
if (NetworkStatus.equals("false")) {
alert.noInternetAlert(getActivity());
} else {
JSONObject info = new JSONObject();
try {
info.put("name", full_name);
info.put("phone", foodie_contact);
} catch (JSONException e) {
e.printStackTrace();
}
JsonObjectRequest request = new JsonObjectRequest(Request.Method.POST, ApiUrls.ADD, info, new Response.Listener<JSONObject>() {
@Override
public void onResponse(JSONObject response) {
}
}, new Response.ErrorListener() {
@Override
public void onErrorResponse(VolleyError error) {
}
}) {
};
AppController.getInstance().addToRequestQueue(request);
}
}
private void add(){
字符串NetworkStatus=biz.fyra.bookapp.utils.NetworkStatus.checkConnection(getContext());
if(NetworkStatus.equals(“false”)){
alert.noInternetAlert(getActivity());
}否则{
JSONObject info=新的JSONObject();
试一试{
信息输入(“姓名”,全名);
信息输入(“电话”,美食家联系方式);
}捕获(JSONException e){
e、 printStackTrace();
}
JsonObjectRequest=newJSONObjectRequest(request.Method.POST,apirls.ADD,info,new Response.Listener()){
@凌驾
公共void onResponse(JSONObject响应){
}
},new Response.ErrorListener(){
@凌驾
公共无效onErrorResponse(截击错误){
}
}) {
};
AppController.getInstance().addToRequestQueue(请求);
}
}
如果互联网可用,我可以将数据发布到服务器。但若互联网不可用,我需要将这个JSON对象临时存储在某个地方,当互联网可用时,我需要将所有JSON对象发布到本地存储的服务器上。如何实现这一点?要实现这一点,您必须遵循以下步骤
public class NetworkChangeReceiver extends BroadcastReceiver {
@Override
public void onReceive(final Context context, final Intent intent) {
final ConnectivityManager connMgr = (ConnectivityManager) context
.getSystemService(Context.CONNECTIVITY_SERVICE);
final android.net.NetworkInfo wifi = connMgr
.getNetworkInfo(ConnectivityManager.TYPE_WIFI);
final android.net.NetworkInfo mobile = connMgr
.getNetworkInfo(ConnectivityManager.TYPE_MOBILE);
if (wifi.isAvailable() || mobile.isAvailable()) {
Log.d("Network Available ", "Flag No 1");
}
}
}
然后在Menifest文件中的应用程序标记中添加意图过滤器
<receiver android:name=".NetworkChangeReceiver" >
<intent-filter>
<action android:name="android.net.conn.CONNECTIVITY_CHANGE" />
</intent-filter>
</receiver>
要实现这一点,您必须遵循以下步骤
public class NetworkChangeReceiver extends BroadcastReceiver {
@Override
public void onReceive(final Context context, final Intent intent) {
final ConnectivityManager connMgr = (ConnectivityManager) context
.getSystemService(Context.CONNECTIVITY_SERVICE);
final android.net.NetworkInfo wifi = connMgr
.getNetworkInfo(ConnectivityManager.TYPE_WIFI);
final android.net.NetworkInfo mobile = connMgr
.getNetworkInfo(ConnectivityManager.TYPE_MOBILE);
if (wifi.isAvailable() || mobile.isAvailable()) {
Log.d("Network Available ", "Flag No 1");
}
}
}
然后在Menifest文件中的应用程序标记中添加意图过滤器
<receiver android:name=".NetworkChangeReceiver" >
<intent-filter>
<action android:name="android.net.conn.CONNECTIVITY_CHANGE" />
</intent-filter>
</receiver>
您是否尝试过使用作业调度器
?否。请提供合适的链接供我参考。请参阅:这是:您可以在singleton类中存储json对象。它只会在应用程序运行之前存储值。Hi@Satyam,on error listener将输入的json存储在数据库中,并为internet连接编写listener,如果用户从脱机状态进入联机状态,则将所有数据推送到服务器您是否尝试使用作业调度器
?否。请为我提供合适的链接以供参考。请参阅:这是:您可以在singleton类中存储json对象。它只会在应用程序运行之前存储值。Hi@Satyam,on error listener将输入的json存储在数据库中,并为internet连接编写listener,如果用户从脱机状态进入联机状态,请将所有数据推送到服务器。如果您在以下步骤中需要帮助,请告诉我。您可以帮助我使用广播接收器检查Internet何时可用吗?请检查我的更新答案。您将接收广播是onreceive方法,然后您可以执行所需的操作。如果您在以下步骤中需要帮助,请告诉我。您可以帮助我使用广播接收器检查互联网何时可用吗?请检查我的更新答案。您将接收广播是onreceive方法,然后您可以执行所需的操作。