2016-08-26 4 views
0

у меня есть эта фоновая служба:сервис Android Фонового закрывает себя мгновенно при запуске его

public class UjsagFeedReaderService extends IntentService { 

public UjsagFeedReaderService(){ 
    super("UjsagFeedReaderService"); 
} 

    Timer timerbd = new Timer(); 
    TimerTask taskbd = new TimerTask() { 
     public int a = 0; 
     @Override 
     public void run() { 
      a++; 
      Toast.makeText(getBaseContext(), "Letelt egy perc, új cikkek keresése. (debug infó)", Toast.LENGTH_LONG).show(); 
      debug(); 
      Log.w("logd", "megy"); 

     } 
    }; 

@Override 
protected final void onHandleIntent(Intent workIntent) { 
    Log.w("logd", "run"); 
    boolean run = workIntent.getBooleanExtra("Belfold",false); 
    boolean Belfold = workIntent.getBooleanExtra("Belfold",false); 
    boolean Kulfold = workIntent.getBooleanExtra("Kulfold",false); 
    boolean Gazdasag = workIntent.getBooleanExtra("Gazdasag",false); 
    boolean TudTech = workIntent.getBooleanExtra("TudTech",false); 
    boolean Sport = workIntent.getBooleanExtra("Sport",false); 
    boolean Eletmod = workIntent.getBooleanExtra("Eletmod",false); 
    boolean Kultura = workIntent.getBooleanExtra("Kultura",false); 
    boolean Autok = workIntent.getBooleanExtra("Autok",false); 
    boolean Egeszseg = workIntent.getBooleanExtra("Egeszseg",false); 
    try { 
     timerbd.scheduleAtFixedRate(taskbd, 60000, 60000); 
    } 
    catch(Exception ex) { 
     Toast.makeText(getBaseContext(), "Hiba", Toast.LENGTH_LONG).show(); 
    } 
    } 

public void debug(){ 

    NotificationCompat.Builder mBuilder = 
      new NotificationCompat.Builder(this) 
        .setSmallIcon(R.mipmap.ic_launcher) 
        .setContentTitle("Teszt") 
        .setContentText("Szia. Ez csak egy teszt"); 
    NotificationManager mNotificationManager = (NotificationManager) getSystemService(Context.NOTIFICATION_SERVICE); 

    mNotificationManager.notify(2004, mBuilder.build()); 
} 
@Override 
public void onDestroy() { 
    Toast.makeText(this, "Mostantól nem fognak értesítések megjelenni.", Toast.LENGTH_LONG).show(); 
    timerbd.cancel(); 
} 

}

Но когда я начинаю его с:

Intent in = new Intent(getBaseContext(), UjsagFeedReaderService.class); 
MainActivity.this.startService(in); 

мгновенно останавливается, запускает метод «OnDestroy»

В диспетчере задач/приложений я не вижу процесса, поэтому он остановлен. Этот процесс используется для планирования уведомлений. Я знаю, что он останавливается после выполнения, но есть таймер.

Таймер не запускается.

+0

'IntentService' останавливается после завершения 'onHandleIntent()'. Возможно, вам нужна регулярная «Служба». –

+0

Но как-то таймер не запускается –

+0

Вы запланировали 60-секундную задержку. «IntentService» будет долго мертв и уничтожен к тому времени. –

ответ

3

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