這個問題就是如果你在你的MainActivity 中的onCreate就馬上 startService就馬上 startService,然後你在一打開app就立刻收到背景
或是你在手機螢幕關閉的情況下,就透過IDE build讓app執行
就有可能遇到此問題,google一下大概可以找到解法
把startService改成
ContextCompat.startForegroundService(this,intent)
然而還有一個動作必須執行,否則你在執行時不會馬上crash,他會在5秒內檢查你有沒有執行某個API,並且送你一個ANR
然後寫著
android.app.RemoteServiceException: Context.startForegroundService() did not then call Service.startForeground()
這問題主要就是你在service 的onCreate中必須多呼叫一個api
NotificationChannel channel = new NotificationChannel(CHANNEL_ID,CHANNEL_NAME,
NotificationManager.IMPORTANCE_HIGH);
NotificationManager manager = (NotificationManager) getSystemService(Context.NOTIFICATION_SERVICE);
manager.createNotificationChannel(channel);
Notification notification = new Notification.Builder(getApplicationContext(),CHANNEL_ID).build();
startForeground(1, notification);
不過這樣就是在前景執行會丟到通知欄讓使用者知道目前正在前景執行,透過前景執行,如此就可以解決背景執行的問題。