1

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.

Yugesh
  • 4,030
  • 9
  • 57
  • 97

0 Answers0