According to the background execution limits introduced in Android Oreo, calling startService when the app is in background should throw an IllegalArgumentException
. Check this question: Android 8.0: java.lang.IllegalStateException: Not allowed to start service Intent.
I created a sample app targetting Android Oreo that does the following:
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
new Handler().postDelayed(new Runnable() {
@Override
public void run() {
startService(new Intent(MainActivity.this, MyService.class));
}
}, 5000);
}
Then I start the app and after press the home button immediately bringing the app to the background state. But the exception is not thrown. How can it be? I expect the app to crash in this case.