Soru & Cevap

Volleyle çekilen verileri güncelleme

01.12.2018 - 12:41

Arkadaşlar merhaba, 

bir mySQL'den veri çekiyip cardvievda görüntülüyorum.  

denemek için mySQL'e elle girdiğim ilk verileri çekti. deneme listemi oluşturdum.  herşey güzel. 

ancak daha sonra veritabanına veri girdiğimde listeme yeni veriler eklenmiyor. Güncellenmiyor. Uygulamayı kapatım açıyorum yine sonuç yok.  

Her liste aktivitesine girdiğimizde webservisin verdiği verileri uygulamada görünmesi için ne yapmalıyız?  

 

8 Görüntülenme

2 Cevap

Sitedeki sorulara cevap verebilmek için giriş yapın ya da üye olun.

picture-199562-1543614110.jpg
tanyurd
03.12.2018 - 04:33

Umarım bir faydamız olur diyerek çözüm yolumu sizinle paylaşayım.. 

Volley kütüphanesinin cachesi var. Bu her seferinde kaldığı sürece listeniz, yani çekilen verileriniz güncellenmiyor. Onun için kütüphanede şöyle bir kod var.

requestQueue.getCache().clear();

Bu kodu volley kuyruğunu bitirirken kullanıyoruz. Hatta cacheyi tamamende kapatabilirsiniz. Ama bu çok mantıklı değil. Çünkü internetiniz yoksa bu defa hiçbir veri yüklenmeyecektir. 

Bu durumda, internetiniz varsa ve yoksa diye kontrol yapıyoruz. Buna göre de ya cacheyi temziliyoruz, ya da temizlemiyoruz. Aşağıdaki kontrolü yapıp, volley kuyruğunda çağıracağız. 

 public boolean networkConnection() {   //BAĞLANTIYI KONTROL ETMEK
        ConnectivityManager conMgr = (ConnectivityManager) getSystemService (this.CONNECTIVITY_SERVICE);
        if (conMgr.getActiveNetworkInfo() != null && conMgr.getActiveNetworkInfo().isAvailable() && conMgr.getActiveNetworkInfo().isConnected()) {
            return true;
        }else{
            return false;
        }
    }

yani şöyle olacak :  

 

Volley.newRequestQueue(gazeteYazilari2.this).add(stringRequest); // internet yoksa zaten normal kuyruk

        if(networkConnection()){  //internet varsa cacheyi temizle ve çağır 
            RequestQueue requestQueue = Volley.newRequestQueue(gazeteYazilari2.this);
            requestQueue.getCache().clear();
            requestQueue.add(stringRequest);
        }else{ // internet yoksa birşey yapma.. 

        }

Hiçbir Türkçe kaynakta deva bulamamıştım derdime. Artık arayan bulabilecek. :) 

picture-199562-1543614110.jpg
tanyurd
03.12.2018 - 04:32

Umarım bir faydamız olur diyerek çözüm yolumu sizinle paylaşayım.. 

Volley kütüphanesinin cachesi var. Bu her seferinde kaldığı sürece listeniz, yani çekilen verileriniz güncellenmiyor. Onun için kütüphanede şöyle bir kod var.

requestQueue.getCache().clear();

Bu kodu volley kuyruğunu bitirirken kullanıyoruz. Hatta cacheyi tamamende kapatabilirsiniz. Ama bu çok mantıklı değil. Çünkü internetiniz yoksa bu defa hiçbir veri yüklenmeyecektir. 

Bu durumda, internetiniz varsa ve yoksa diye kontrol yapıyoruz. Buna göre de ya cacheyi temziliyoruz, ya da temizlemiyoruz. Aşağıdaki kontrolü yapıp, volley kuyruğunda çağıracağız. 

 public boolean networkConnection() {   //BAĞLANTIYI KONTROL ETMEK
        ConnectivityManager conMgr = (ConnectivityManager) getSystemService (this.CONNECTIVITY_SERVICE);
        if (conMgr.getActiveNetworkInfo() != null && conMgr.getActiveNetworkInfo().isAvailable() && conMgr.getActiveNetworkInfo().isConnected()) {
            return true;
        }else{
            return false;
        }
    }

yani şöyle olacak :  

 

Volley.newRequestQueue(gazeteYazilari2.this).add(stringRequest); // internet yoksa zaten normal kuyruk

        if(networkConnection()){  //internet varsa cacheyi temizle ve çağır 
            RequestQueue requestQueue = Volley.newRequestQueue(gazeteYazilari2.this);
            requestQueue.getCache().clear();
            requestQueue.add(stringRequest);
        }else{ // internet yoksa birşey yapma.. 

        }

Hiçbir Türkçe kaynakta deva bulamamıştım derdime. Artık arayan bulabilecek. :)