Assalomu alaykum, yordam.uz saytimizga xush kelibsiz.
Bu saytda o`zingizni qiziqtirgan savollarga javob olishingiz va o`z sohangiz bo`yicha savollarga javob berishingiz mumkin. Bizning Oilamizga a'zo bo`lganingiz uchun chuqur Minnatdorchilik bildiramiz !!!

Android'da har 15 minutda ma'lumotlarni serverdan olib turish

+3 ovoz
78 marta ko‘rilgan
so‘radi 09 fevral, 17 Bilmasvoy (904 bal)

Menga Androidda har 15 minutda serverdan ma'lumot olib turishim kerak. Ma'lumotlarni olish uchun Async class yasadim va ishlavotti.

Endi shu class ni har 15 minutda ishga tushirishim kerak. Shartlari

  • Activity ga halaqit bermasdan, o`zi alohida Thread da ishlashi kerak
  • Har 15 minutda ishini tugatganidan keyin, Activity ning birorta funksiyasini ishlatishi kerak

Men qilib ko`rgan narsam,

private Runnable mRunnable = null;
public void useHandler() {
    if (handler == null) {
        handler = new Handler();
        if (mRunnable == null) mRunnable = new DataRefresher(handler, this, this);
        long updatePeriod = 900; // sekund
        handler.postDelayed(mRunnable, updatePeriod * 1000);
    }
}

Lekin bu xolda Activity qotib qovotti. Nima qilsa bo`ladi?

izoh qoldirdi 11 fevral, 17 Axrorxo'ja (743 bal)
agar task kichik bo'lsa asyncTask yaxshi,agar long runing operation bo'lsa service maqul,sizni holatizga service juda qulay bind qilib ishlataverasiz

1 ta javob

+1 ovoz
javob berdi 10 fevral, 17 Fozilbek (154 bal)
tahrirlandi 11 fevral, 17 Saidolim

Interfacedan foydalaning.  

public interface OnDataReceiveListener {

     public void onData(Object obj);

}

Datarefresh classni konstruktoriga interfaceni qoshib qoying. 

public class Datarefresh .....{

private OnDataReceiveListener listener;

public Datarefresh(OnDataReceiveListener listener, .....){

      this.listener = listener;

}

// serverdan data kelganida lestenerni onDatasiga berib yuborasiz danniyni

     listener.onData(obj); 

}

public MyActivity extends .....  implements OnDataReceiveListener {

private Runnable mRunnable = null;
public void useHandler() {
    if (handler == null) {
        handler = new Handler();
        if (mRunnable == null) mRunnable = new DataRefresher(MyActivity.this, handler, this, this);
        long updatePeriod = 900; // sekund
        handler.postDelayed(mRunnable, updatePeriod * 1000);
    }
}


// Serverdan data kelganida onData metodiga tushadi;

   public void onData(Object obj){

   }

}

Yana Android servicedan ham foydalansangiz bo'ladi xuddi shunaqa qilib

Assalomu alaykum, yordam.uz saytimizga xush kelibsiz.

Bu saytda o`zingizni qiziqtirgan savollarga javob olishingiz va o`z sohangiz bo`yicha savollarga javob berishingiz mumkin.

Bizning Oilamizga a'zo bo`lganingiz uchun chuqur Minnatdorchilik bildiramiz !!!

Telegram kanal YordamUzRss

...