最好的方法是JobIntentService它对OREO使用新的JobScheduler,如果不可用,则使用旧的服务。
在您的舱单中声明:
android:permission="android.permission.BIND_JOB_SERVICE"/>
在您的服务中,您必须将onHandleIntent替换为onHandleWork:public class YourService extends JobIntentService {
public static final int JOB_ID = 1;
public static void enqueueWork(Context context, Intent work) {
enqueueWork(context, YourService.class, JOB_ID, work);
}
@Override
protected void onHandleWork(@NonNull Intent intent) {
// your code
}}
然后,您可以从以下方面开始您的服务:YourService.enqueueWork(context, new Intent());