Soru & Cevap

AndroidStudio - Background Service and AsyncTask

26.08.2015 - 04:00

Merhaba arkadaşlar amacım belli aralıklarda web servisten gelen cevaba göre bildirim göndermek programın arka planda sürekli çalışmasını istiyorum ve zamanı geldiğinde  bildirimi göndermesini istiyorum . Aşağıda kodun sade halini paylaşıyorum mantığım doğru mu? daha farklı bir yol kullanabilir miyim? Önerileri bekliyorum iyi çalışmalar.

public class NotificationService extends Service {

    @Override
    public void onCreate() {
        super.onCreate();
    }

    @Override
    public IBinder onBind(Intent intent) {
        return null;

    }

    @Override
    public int onStartCommand(Intent intent, int flags, int startId) {

        new NotifyAsenkron().executeOnExecutor(AsyncTask.THREAD_POOL_EXECUTOR, "");
        //Burada asenkron olarak NotifyAsenkron çalışıyor method programın başka yerinde yine asenkron bir method olduğu için paralel olarak çalışmasını sağlıyor.


        return super.onStartCommand(intent, flags, startId);
    }

    class NotifyAsenkron extends AsyncTask<String, String, String> {

        @Override
        protected String doInBackground(String... params) {
            cNotify();


            return null;
        }
        @Override
        protected void onPostExecute(String s) {
               
        }

        @Override
        protected void onPreExecute() {
            super.onPreExecute();
        }
    }
    public  void createNotification() {
             // Notification Oluşturuyor

    }
    public void cNotify() {

        while (1 != 2){
            Calendar c = Calendar.getInstance();
            SimpleDateFormat df = new SimpleDateFormat("HH:mm");
            int AyinGunu = c.get(Calendar.DAY_OF_MONTH);

            if (AyinGunu == 1 || AyinGunu == 2 || AyinGunu == 3 || AyinGunu == 4) {

                if (df.format(c.getTime()).equals(str)) {
                    
                    LogOnService();

                    }

                }

            }
        }

}

 

7 Görüntülenme

1 Cevap

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

Profile picture for user fatihcamuz
fatihcamuz
26.08.2015 - 05:36

ScheduledExecutorService kullanabilirsin