Ранее я использовал IntentService
для запуска фоновых служб с помощью AlaramManager. Теперь я изменил значение IntentService
на JobIntentService
для фонового процесса триггера для извлечения данных с сервера. В некоторых устройствах JobIntentService
не запускается, запускается только после открытия приложения.
Набор 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
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" />
Есть ли проблема в моем кодировании. Помогите мне решить проблему.