2010-08-31 3 views
1

У меня есть приложение для Android с фоновым запуском службы.Android - как убедиться, что моя служба перезагружена?

Когда служба аварийно завершает работу или удаляется Android, я вижу, что Android пытается перезапустить ее снова.

Однако служба никогда не перезапускается, я вижу, что Android планирует перезапуск, но на самом деле это происходит на самом деле.

Мой код выглядит следующим образом:


@Override 
public void onCreate() { 
    String ns = Context.NOTIFICATION_SERVICE; 
    mNotificationManager = (NotificationManager) getSystemService(ns); 
    mTelephonyManager = (TelephonyManager)getSystemService(Context.TELEPHONY_SERVICE); 
    audio_service = (AudioManager) getSystemService(Context.AUDIO_SERVICE); 


} 

// This is the old onStart method that will be called on the pre-2.0 
// platform. On 2.0 or later we override onStartCommand() so this 
// method will not be called. 
@Override 
public void onStart(Intent intent, int startId) { 
    handleCommand(intent); 
} 

@Override 
public int onStartCommand(Intent intent, int flags, int startId) { 
    handleCommand(intent); 
    // We want this service to continue running until it is explicitly 
    // stopped, so return sticky. 
    return START_STICKY; 
} 

void handleCommand(Intent intent) { 

     running = true; 
     mTelephonyManager.listen(new IncomingListener(), PhoneStateListener.LISTEN_CALL_STATE); 

    } 

Есть ли что-то не хватает в моем коде, чтобы разрешить службе перезапустить?

ответ

2

Вы пытались использовать startForeground()?

+0

Да, я реализовал это, и это дало мне очень странное поведение, оно появилось в уведомлении, даже когда приложение и служба не должны были работать. Дело в том, что я попытался с помощью пустого метода onStart(), и служба, похоже, перезапустилась нормально. –

+0

ok fine Donal ... – DeRagan

Смежные вопросы