簡體   English   中英

調用Activity onDestroy時調用Android onCreate Service

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM