如果機器在memory不夠的情況下,
就會把一些service砍掉,
那要如何讓service重啟呢?
這方法只能用在startService()時,
因為他會呼叫到onStartCommand()這個function。
public int onStartCommand(Intent intent, int flags, int startId) {
handleStart(intent, startId);
return START_NOT_STICKY;
}
而我們只要在回傳值加入回傳的值就可以達到這效果。
START_STICKY
這個是告訴系統說如果你memory不足砍掉我,
那請在memory夠時create完service後,呼叫onStartCommand()重新帶起我,
並且使用"null" intent。
START_NOT_STICKY
這個是告訴系統說不用再重新帶起我了。
START_REDELIVER_INTENT
這是告訴系統,
重新create完service後,並且傳入相同的intent到onStartCommand(),
來帶起我。
Ref 1
Ref 2
沒有留言:
張貼留言