首页 > 解决方案 > 如何在模拟器上模拟 IllegalStateException 以获得新的背景限制

问题描述

在我将我的应用程序更新到 targetSdkVersion 27 后,我注意到我的应用程序在某些新设备上的 Google Play 崩溃。

崩溃的原因是由于 Oreo 中引入了新的后台执行限制,我调用了在 Application 对象 onCreate 中启动一些 TTS 服务。当调用 startService(intent) 时抛出 IllegalStateException。

我正在尝试使用 Android 8.1 (API 27) 在模拟器上重现此错误。但是它没有问题。

我尝试在开发人员设置\后台进程限制中设置无后台进程。但我的应用程序在模拟器上运行良好。

我的服务正在另一个进程中运行:

<service
    android:name=".services.Text2SpeechService"
    android:enabled="true"
    android:exported="false"
    android:process="my.app.services.Text2SpeechService" />

问题:如何让模拟器模拟这个错误?

标签: androiddebuggingserviceandroid-emulatorbackground-process

解决方案


推荐阅读