Използвам Android AlarmManger, за да планирам изпълнение на IntentService след малки интервали.
Ето моят AlarmManger:
static void setNextSchedule(Context ctx, long interval){
AlarmManager manager = (AlarmManager) ctx.getSystemService(Context.ALARM_SERVICE);
Intent nIntent = new Intent(ctx, DService.class);
PendingIntent pIntent = PendingIntent.getActivity(ctx, 1, nIntent, PendingIntent.FLAG_UPDATE_CURRENT);
manager.setRepeating(AlarmManager.ELAPSED_REALTIME,
SystemClock.elapsedRealtime() + interval, interval, pIntent);
Log.i(ScheduleAlarm.class.getSimpleName(), "Next alarm set");
}
И моят IntentService:
@Override
protected void onHandleIntent(Intent intent) {
Log.i(DService.class.getSimpleName(), "Service starting");
ScheduleAlarm.setNextSchedule(getApplicationContext(), 15000);
}
В момента той само съдържа код за тестване. Сега този код ще работи успешно без проблеми, след като приложението стартира, но след 15 секунди ще посочи, че услугата стартира в logcat, но кодът няма да се изпълни.
Как да накарам интернет услугата да изпълнява кода вътре в onHandleIntent
всеки път, когато се изпълнява?
Благодаря
getActivity()
PendingIntent
заIntent
за клас с имеDService
? - person CommonsWare   schedule 08.02.2014getService()
и сега всичко работи добре. Добавете като отговор, ще приема. Благодаря ти - person Wahtever   schedule 08.02.2014