Android BackgroundServiceStartNotAllowedException仅适用于API 31以上

exdqitrt  于 2023-06-20  发布在  Android
关注(0)|答案(1)|浏览(603)

如何捕获BackgroundServiceStartNotAllowedException异常,该异常仅在API级别31以上才支持。基本上我的代码是这样的,我也希望支持设备运行API低于31。

  1. try {
  2. context.startService(service);
  3. } catch (IllegalStateException e) {
  4. e.printStackTrace();
  5. } catch (BackgroundServiceStartNotAllowedException e) {
  6. e.printStackTrace();
  7. } catch (Exception e) {
  8. e.printStackTrace();
  9. }

BackgroundServiceStartNotAllowedException

qybjjes1

qybjjes11#

最简单的方法是在IllegalStateException中添加一个Exception类名检查。由于BackgroundServiceStartNotAllowedExceptionIllegalStateException的子类,所以异常将在那里结束:

  1. try {
  2. context.startService(service);
  3. } catch (IllegalStateException e) {
  4. if (e.getClass().getName().equals("android.app.BackgroundServiceStartNotAllowedException") {
  5. // handle BackgroundServiceStartNotAllowedException
  6. }
  7. e.printStackTrace();
  8. }

相关问题