2011-06-29 217 views
1

如果某些首選項已更改,我想重新啓動我的android服務,但沒有任何事情像Service類中的重新啓動方法?有什麼方法可以重新啓動我的服務,除了創建某種重置方法來重置所有類變量等嗎?感謝您的任何提示!重新啓動我的android服務?

回答

1

我認爲再次調用它會再次調用onStartCommand()。 這可能會爲你做的工作。

*如果它沒有活動,它將運行onCreate()。

調用startService(意向)再次,將這樣的伎倆

+0

嗯,我真的希望服務重新啓動,即使它已經在運行。我特別希望再次調用onCreate()。順便說一句,我想從內部重新啓動服務。 –

+0

我不確定,真的不知道服務如何啓動。它可以殺死自己(),但至於重新啓動?我搞不清楚了。活動呢?那麼從onclose()調用的broadcastlistener怎麼樣並且再次啓動呢?只是一個想法。 – Saariko

0

你必須overrideonStartCommand()在服務類,如下所示:

@Override 
public int onStartCommand(Intent intent, int flags, int startId) { 
    super.onStartCommand(intent, START_STICKY, startId); 
    return START_STICKY; 
} 

常數變量START_STICKY指示系統重新啓動服務,如果它被殺害。

你應該有/實行listener檢測和通知偏好的變化時,你應該爲聽衆註冊內onStart()方法和取消註冊內onDestroy()該偵聽器。