Previously am using IntentService
to trigger the Background services with AlaramManager. Now am changed the IntentService
to JobIntentService
for trigger Background process to fetch the data from Server. In Some devices JobIntentService
not triggering, it will trigger only after open the application.
Set AlaramManager
Calendar calendar = Calendar.getInstance();
calendar.set(Calendar.HOUR_OF_DAY, 9);
calendar.set(Calendar.MINUTE, 0);
calendar.set(Calendar.SECOND, 0);
PendingIntent pi;
AlarmManager am;
pi = PendingIntent.getBroadcast(getActivity(), requestCode, new Intent(getActivity(), PendingCampaignReceiver.class), PendingIntent.FLAG_UPDATE_CURRENT);
am = (AlarmManager) getActivity().getSystemService(Context.ALARM_SERVICE);
am.setInexactRepeating(AlarmManager.RTC_WAKEUP, calendar.getTimeInMillis(), AlarmManager.INTERVAL_DAY, pi);
BroadCastReceiver Class
public class PendingCampaignReceiver extends BroadcastReceiver {
@Override
public void onReceive(Context context, Intent intent) {
PendingCampaign.enqueueWork(context, intent);
}
}
<receiver
android:name=".broadcast.receiver.PendingCampaignReceiver"
android:enabled="true"
android:process=":remote" />
JobIntentService Class
public class PendingCampaign extends JobIntentService {
public static void enqueueWork(Context context, Intent intent) {
enqueueWork(context, PendingCampaign.class, PENDING_CAMPAIGN_JOB_ID, intent);
}
@Override
protected void onHandleWork(@NonNull Intent intent) {
//am doing my API calling here
}
}
<service
android:name=".services.PendingCampaign"
android:permission="android.permission.BIND_JOB_SERVICE" />
Is there any issue in my Coding. Help me to solve the issue.