I have implemented Job scheduler in my project and it works fine in the case if the app is in background or if the app is killed. But it is not working if the device is rebooted. I have included
JobInfo.Builder mBuilder = new JobInfo.Builder(TASK_ID, mComponentName);
mBuilder.setPersisted(true);
in my builder and
<uses-permission android:name="android.permission.RECEIVE_BOOT_COMPLETED" />
in application manifest file.This is how I have added my service to manifest
<service
android:name="com.xxx.xxxx.service.MyJobService"
android:permission="android.permission.BIND_JOB_SERVICE" />
Is there anything else to be included?
Thanks in advance
Register a BroadCastReciever
for detecting BOOT_COMPLETED
.
<receiver android:name="com.example.startuptest.StartUpBootReceiver">
<intent-filter>
<action android:name="android.intent.action.BOOT_COMPLETED" />
</intent-filter>
And in your BroadcastReceiver:
public class StartUpBootReceiver extends BroadcastReceiver {
@Override
public void onReceive(Context context, Intent intent) {
if (Intent.ACTION_BOOT_COMPLETED.equals(intent.getAction())) {
Log.d("startuptest", "StartUpBootReceiver BOOT_COMPLETED");
...
}
}
}
Once a user runs any activity in your app once, you will receive the BOOT_COMPLETED
broadcast after all future boots.
Are you talking about normal service or JobService?
JobService extends
Service
class.You have to register Broadcast reciever for anyservice
class where you want to listenBOOT_COMPLETED
.so what is the use of setPersistable() ? developer.android.com/reference/android/app/job/…
setPersisted
It only applies to system apps, which makes app unkillable . If you are working on Non-system app then useforeground
services.Total newb here, so forgive me for sounding lost - does com.example.startuptest.StartUpBootReceiver have to be a new activity?