У меня есть приложение для Android, связанное с моей базой данных с помощью volley/JSON. Я хочу постоянно проверять таблицу «запрос» пользователя в моей базе данных и когда у него есть значение, равное 1, я хочу предупреждающее сообщение. Я использовал while loop для его обработки, но приложение аварийно. Все идеи, как избежать использования в то время как? Вот мой Java-код я бегу в mainactivity в методе OnCreate:Android-приложение вылетает во время цикла
while(request!=1) {
Response.Listener<String> response1Listener = new Response.Listener<String>() {
@Override
public void onResponse(final String response) {
try {
JSONObject jsonResponse = new JSONObject(response);
request= jsonResponse.getInt("request");
requestorigin=jsonResponse.getString("requestorigin");
//Toast.makeText(MainActivity.this,"Request from " + requestorigin ,Toast.LENGTH_LONG).show();
// Toast.makeText(MainActivity.this,"Request from " + request ,Toast.LENGTH_LONG).show();
if(request==1) {
Toast.makeText(MainActivity.this,"Request from " + requestorigin ,Toast.LENGTH_LONG).show();
}
} catch (
JSONException e
)
{
e.printStackTrace();
}
}
};
CheckRequest checkRequest = new CheckRequest(username,response1Listener);
RequestQueue queue1 = Volley.newRequestQueue(MainActivity.this);
queue1.add(checkRequest);
}
А вот класс CheckRequest:
package com.example.sakis.multiplayerdemo;
import com.android.volley.Response;
import com.android.volley.toolbox.StringRequest;
import java.util.HashMap;
import java.util.Map;
public class CheckRequest extends StringRequest {
private static final String REGISTER_REQUEST_URL = "http://xxxxx.com/CheckRequest.php";
private Map<String, String> params;
public CheckRequest(String username, Response.Listener<String> listener) {
super(Method.POST, REGISTER_REQUEST_URL, listener, null);
params = new HashMap<>();
params.put("username", username );
}
@Override
public Map<String, String> getParams() {
return params;
}
}
LogCat показывает это:
29582-29582/com.example.sakis.multiplayerdemo D/dalvikvm: VFY: replacing
opcode 0x6f at 0x120b 05-21 12:38:17.236 29582-
29582/com.example.sakis.multiplayerdemo E/dalvikvm: Could not find class
'android.os.PersistableBundle', referenced from method
com.example.sakis.multiplayerdemo.MainActivity.access$super 05-21
12:38:17.236 29582-29582/com.example.sakis.multiplayerdemo W/dalvikvm: VFY:
unable to resolve check-cast 222 (Landroid/os/PersistableBundle;) in
Lcom/example/sakis/multiplayerdemo/MainActivity;
пожалуйста пост журнала – Manifest
29582-29582/com.example.sakis.multiplayerdemo D/dalvikvm VFY: замена опкод 0x6F на 0x120b 05-21 12: 38: 17,236 29582-29582/com.example.sakis.multiplayerdemo Е/dalvikvm: Не удалось найти класс 'android.os.PersistableBundle', на который ссылается метод com.example.sakis.multiplayerdemo.MainActivity.access $ super 05-21 12: 38: 17.236 29582-29582/com.example.sakis. multayerdemo W/dalvikvm: VFY: не удалось разрешить проверку 222 (Landroid/os/PersistableBundle;) в Lcom/example/sakis/multiplayerdemo/MainActivity; –
Он отлично работает, если я заменю цикл while на if и проверю его только один раз. –