SDK中的Android服务问题>;=26

SDK中的Android服务问题>;=26,android,service,notifications,Android,Service,Notifications,我正在创建一个应用程序,它向用户发送通知,即使应用程序在进程中或后台被终止。实际上,在SDK>=26的Android版本中,我使用的是前台服务。 为了显示通知,我有一个服务(DatasNotification),它启动一个asyncTask(HttpRequest)来发出http请求,并且asyncTask在条件结束时启动一个显示通知的新服务。 当我的应用程序进入后台时,我会收到一个系统通知:我的应用程序正在耗尽电池电量。 在分析过程中,我了解到此系统通知是由DatasNotification服

我正在创建一个应用程序,它向用户发送通知,即使应用程序在进程中或后台被终止。实际上,在SDK>=26的Android版本中,我使用的是前台服务。 为了显示通知,我有一个服务(DatasNotification),它启动一个asyncTask(HttpRequest)来发出http请求,并且asyncTask在条件结束时启动一个显示通知的新服务。 当我的应用程序进入后台时,我会收到一个系统通知:我的应用程序正在耗尽电池电量。 在分析过程中,我了解到此系统通知是由DatasNotification服务生成的

这是我的数据通知代码:

@Override
public void onCreate() {
    super.onCreate();
    Fabric.with(this, new Crashlytics());
    if (android.os.Build.VERSION.SDK_INT >= Build.VERSION_CODES.O) {
        startForeground(1, new Notification());
    }
}

@Override
public int onStartCommand(Intent intent, int flags, int startId) {
    new HttpRequest(getApplicationContext(), 0).execute();
    return START_STICKY;
}
sdk>=26中是否有运行后台服务的解决方案?

这是Oreo(API26-27)特有的功能,用于在应用程序运行后台服务时显示系统通知“[应用程序]正在使用电池”。您会注意到,在运行p(API28)或Android 10(API 29)的设备中不会收到相同的警告,因为该警告已被完全删除/禁用。我不认为你可以在应用程序中进行任何更改,以防止该警告在Oreo设备中显示,除非你可以完全取消(后台)服务

用户可以通过执行以下操作禁用该警告:

  • 解锁运行Android Oreo的设备
  • 在屏幕上向下滑动 通知灯罩,完全暴露“使用电池”通知
  • 长按该通知,直到其更改并显示切换
  • 点击开关,确保其呈灰色
  • 选择“完成” 禁用“使用电池”通知
  • ()

    这是Oreo(API26-27)特有的功能,用于在应用程序运行后台服务时显示“应用程序正在使用电池”的系统通知。您会注意到,在运行P(API28)或Android 10(API29)的设备中,您不会收到相同的警告,因为该警告已被删除/禁用。我不认为你可以在你的应用程序中改变任何东西来阻止警告在Oreo设备中显示,除非你可以完全摆脱你的(后台)服务

    用户可以通过执行以下操作禁用该警告:

  • 解锁运行Android Oreo的设备
  • 在屏幕上向下滑动 通知灯罩,完全暴露“使用电池”通知
  • 长按该通知,直到其更改并显示切换
  • 点击开关,确保其呈灰色
  • 选择“完成” 禁用“使用电池”通知
  • ()