Volley ile timer kullanımı
29.03.2017 - 06:23
Merhaba arkadaşlar,
Uzak mysql veri tabanından json türünde verileri çektiğim bi android uygulamam var. Verilerin anlık olarak ekrana gelmesi için timer kullanıyorum bir süre sonra uygulama çöküyor. İnternette yaptığım araştırmalarda volley yerine AsyncHttpClient kullanmam gerektiği yazıyordu fakat yine aynı hatayı aldım.
final Handler handler = new Handler();
TimerTask doAsynchronousTask = new TimerTask() {
@Override
public void run() {
handler.post(new Runnable() {
public void run() {
mesajGetir();
adapter=new UsersmyListAdapter(Mesaj.this,data2);
sohbetlistele.setAdapter(adapter);
}
});
}
};
Timer timer = new Timer();
timer.schedule(doAsynchronousTask,0,1000);
public void mesajGetir()
{
JSONObject jsonObject = null;
String loginUrl="http://192.168.2.18:9090/InstantMess/webapi/kullanici/mesaj/"+id+"/"+kid;
JsonArrayRequest req = new JsonArrayRequest(loginUrl,
new Response.Listener<JSONArray>() {
@Override
public void onResponse(JSONArray response) {
try {
//adapter2.notifyDataSetChanged();
adapter.notifyDataSetChanged();
data2.clear();
for (int i = 0; i < response.length(); i++) {
JSONObject person = (JSONObject) response.get(i);
String mesaj=person.getString("mesaj");
String im=person.getString("resim");
JSONObject arkId=person.getJSONObject("arkadasId");
int aid=arkId.getInt("arkadasId");
JSONObject kullanici2=arkId.getJSONObject("kullanici2");
int kullanici2kullaniciId=kullanici2.getInt("kullaniciId");
String kullanici2kullaniciAd=kullanici2.getString("kullaniciAd");
JSONObject kullaniciId=person.getJSONObject("kullaniciId");
int kullaniciIdkullaniciId=kullaniciId.getInt("kullaniciId");
String kullaniciIdkullaniciAd=kullaniciId.getString("kullaniciAd");
HashMap<String, String> map2 = new HashMap<String, String>();
map2.put("type","1");
map2.put("mesaj",mesaj);
if(mesaj == "null")
map2.put("type","2");
map2.put("resim",im);
map2.put("arkadasId", String.valueOf(aid));
map2.put("kullaniciId1", String.valueOf(kullanici2kullaniciId));
map2.put("kullaniciAd1",kullanici2kullaniciAd);
map2.put("kullaniciId2", String.valueOf(kullaniciIdkullaniciId));
map2.put("kullaniciAd2", kullaniciIdkullaniciAd);
data2.add(map2);
}
} catch (JSONException e) {
Log.e("Web Servis", "bağlantı sağlanamadı" + e.getLocalizedMessage());
e.printStackTrace();
}
}
},new Response.ErrorListener() {
@Override
public void onErrorResponse(VolleyError error) {
// Toast.makeText(getApplicationContext(), "Web servis ile bağlantı kurulamadı.", Toast.LENGTH_LONG).show();
}
});
RequestQueue requestQueue = Volley.newRequestQueue(this);
requestQueue.add(req);
}
8
Görüntülenme
0 Beğeni