[英]Android onCreate Service called when Activity onDestroy called
我有一項啟動服務的活動。 如果我退出到主屏幕,然后從最近的應用程序列表中手動關閉活動,則會在服務中再次調用onCreate。
因此,當活動被銷毀時,再次調用onCreate(即使服務在活動中調用onDestroy時運行)
我不希望再次調用服務中的onCreate。 我知道它有可能重復這個: Android服務onCreate多次調用而不調用onDestroy但是這里建議將服務放在另一個進程中的解決方案不起作用(至少在Android 4.4 kit kat上)
有什么建議?
這是因為從“最近使用的應用程序”列表中刪除應用程序后,您將強行終止該服務。 有兩種方法可以避免重啟。 不太好的方法是將服務放在與Android Manifest中的活動不同的過程中。
例如:
<activity ...
process:"com.example.activity.process" />
<service ...
process:"com.example.service.process" />
因此,在殺死應用程序時,服務也不會被殺死並重新啟動。 如果您使用此方法,則該服務將由Android認為合適。
更正確的方法是使用onStartCommand()
方法。
只需將以下代碼添加到您的服務:
@Override
public int onStartCommand(Intent intent, int flags, int startID) {
return START_NOT_STICKY;
}
這將阻止服務在不正確終止時重新啟動,即不調用onDestroy()
。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.