Служба, выполняющая AsyncTask снова и снова в методе onCreate () - PullRequest
0 голосов
/ 28 сентября 2011

У меня есть служба, которую я запускаю при отправке тревоги.

Проблема в том, что служба запускается автоматически каждые несколько часов.

Я хочу, чтобы она запускалась только один раз при срабатывании тревоги.

Вот код, который я использую:

@Override
public IBinder onBind(Intent intent) {
    // TODO Auto-generated method stub
    return null;
}
@Override
public void onStart(Intent intent, int startId) {
   loadList service_release = new loadList();
    service_release.execute();
}

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

}

@Override
public void onCreate(){
    super.onCreate();
        loadList service_release = new loadList();
    service_release.execute();
            }

Кто-то сказал мне, что я должен переместить AsyncTask для выполнения в onStartCommand ().Но я не видел в документах ничего, что могло бы решить мою проблему, выполнив это.

Что мне нужно сделать, чтобы он запускался один раз и не продолжал работать снова и снова в течение периода времени после установки будильникавыкл?

РЕДАКТИРОВАТЬ:

Мой будильник настраивается следующим образом ..

String alarm = Context.ALARM_SERVICE;

AlarmManager am = (AlarmManager)getSystemService(alarm);

Intent Aintent = new Intent("REFRESH_THIS");
PendingIntent pi = PendingIntent.getBroadcast(this, 0, Aintent, 0);

Calendar calendar = Calendar.getInstance();
calendar.add(Calendar.FRIDAY, );
am.setRepeating(AlarmManager.RTC_WAKEUP, System.currentTimeMillis() + 4 * AlarmManager.INTERVAL_DAY, AlarmManager.INTERVAL_DAY, pi);

1 Ответ

1 голос
/ 28 сентября 2011

У вас есть повторяющийся сигнал тревоги, это означает, что он будет срабатывать несколько раз и запускать службу каждый раз, когда она есть. Если вам не нужно повторять, установите неповторяющийся будильник, используя AlarmManager.set().

...