运行 无限期服务
Running a Service indefinitely
我正在将我的 Android 应用迁移到 Android Oreo。我正在 运行 宁服务应该 运行 无限期地执行特定任务。
服务的运行当然是在用户同意的情况下执行特定任务。
到目前为止,我的应用程序一直以 Android Marshmallow 为目标,服务运行良好,运行ning 也很好。
这是我的服务
public class MyService extends Service {
public MyService() {
}
@Override
public IBinder onBind(Intent intent) {
return null;
}
@Override
public void onCreate() {
super.onCreate();
}
private void DoSomething() {
//Some Code keep watching something.
}
@Override
public int onStartCommand (Intent intent, int flags, int startId) {
DoSomething();
return Service.START_STICKY;
}
}
这就是我从 Activity
启动服务的方式
startService(new Intent(getBaseContext(), MyService.class));
现在我的问题是,当我将我的应用程序定位到 Android Oreo 时,服务不是 运行ning,因此我试图实现的功能无法正常工作。
但是如果我的应用程序目标 Android Marshmallow 使用完全相同的代码一切正常。
任何人都可以帮助我 运行 在 Android 应用定位 Android Oreo 中无限期地提供服务吗?
在AndroidOreo+中,后台服务被严格限制。要 运行 您的代码,您有两种选择:使用 Foreground service or use something like JobScheduler/WorkManager API。
虽然它们都不会无限期地工作,但 WorkManager 仅适用于可延迟的任务。这是我们无能为力的事情。
对于 android 最新版本,我们对运行后台服务有一些限制
Android Oreo Limitations
我正在将我的 Android 应用迁移到 Android Oreo。我正在 运行 宁服务应该 运行 无限期地执行特定任务。
服务的运行当然是在用户同意的情况下执行特定任务。
到目前为止,我的应用程序一直以 Android Marshmallow 为目标,服务运行良好,运行ning 也很好。
这是我的服务
public class MyService extends Service {
public MyService() {
}
@Override
public IBinder onBind(Intent intent) {
return null;
}
@Override
public void onCreate() {
super.onCreate();
}
private void DoSomething() {
//Some Code keep watching something.
}
@Override
public int onStartCommand (Intent intent, int flags, int startId) {
DoSomething();
return Service.START_STICKY;
}
}
这就是我从 Activity
启动服务的方式startService(new Intent(getBaseContext(), MyService.class));
现在我的问题是,当我将我的应用程序定位到 Android Oreo 时,服务不是 运行ning,因此我试图实现的功能无法正常工作。
但是如果我的应用程序目标 Android Marshmallow 使用完全相同的代码一切正常。
任何人都可以帮助我 运行 在 Android 应用定位 Android Oreo 中无限期地提供服务吗?
在AndroidOreo+中,后台服务被严格限制。要 运行 您的代码,您有两种选择:使用 Foreground service or use something like JobScheduler/WorkManager API。
虽然它们都不会无限期地工作,但 WorkManager 仅适用于可延迟的任务。这是我们无能为力的事情。
对于 android 最新版本,我们对运行后台服务有一些限制 Android Oreo Limitations