6
我遇到一個奇怪的行爲,我的背景Service
在Android O上運行。Android O:服務未被後臺執行限制所阻止
我的示例應用程序使用targetSdkVersion 26
我有一個簡單的服務,這只是輸出一些狀態信息,並應使用START_STICKY
重新創建:
class ServiceTest : Service() {
companion object {
private val TAG = "ServiceTest"
fun buildIntent(context: Context): Intent {
return Intent(context, ServiceTest::class.java)
}
}
override fun onBind(p0: Intent?): IBinder? {
return null
}
override fun onCreate() {
super.onCreate()
Log.d(TAG, "onCreate")
}
override fun onStartCommand(intent: Intent?, flags: Int, startId: Int): Int {
Log.d(TAG, "onStartCommand: startId = " + startId)
return START_STICKY
}
override fun onDestroy() {
Log.d(TAG, "onDestroy")
super.onDestroy()
}
}
服務是一個活動中啓動:
startService(ServiceTest.buildIntent(applicationContext))
當我開始服務,然後按下後退按鈕,一切正常如預期:
08-17 16:30:25.182 8980-8980/de.continental.android.androidoservicetest D/ServiceTest: onCreate
08-17 16:30:25.184 8980-8980/de.continental.android.androidoservicetest D/ServiceTest: onStartCommand: startId = 1
08-17 16:31:26.799 900-924/? W/ActivityManager: Stopping service due to app idle: u0a141 -1m1s629ms de.continental.android.androidoservicetest/.ServiceTest
08-17 16:31:26.804 8980-8980/de.continental.android.androidoservicetest D/ServiceTest: onDestroy
但是,如果我啓動服務;通過按回退按鈕離開應用程序,最後通過將應用程序從最近的應用程序列表中移除,我的服務按預期重新啓動(由於START_STICKY)。但是,由於後臺操作限制在規定的時間段後,該服務不會被Android OS殺死。看來我的服務持續運行,操作系統無法阻止它。
08-17 16:23:13.090 8914-8914/de.continental.android.androidoservicetest D/ServiceTest: onCreate
08-17 16:23:13.091 8914-8914/de.continental.android.androidoservicetest D/ServiceTest: onStartCommand: startId = 1
08-17 16:23:18.600 900-3234/? W/ActivityManager: Scheduling restart of crashed service de.continental.android.androidoservicetest/.ServiceTest in 1000ms
08-17 16:23:19.635 900-924/? I/ActivityManager: Start proc 8980:de.continental.android.androidoservicetest/u0a141 for service de.continental.android.androidoservicetest/.ServiceTest
08-17 16:23:20.158 8980-8980/? D/ServiceTest: onCreate
08-17 16:23:20.160 8980-8980/? D/ServiceTest: onStartCommand: startId = 3
有沒有人遇到同樣的問題或有解釋?
你是什麼targetSdkVersion? –
targetSdkVersion是26 – Christopher
我正要發佈相同的問題。我看到完全相同的行爲。這是一個錯誤? –