Android AlarmManager服务调用不工作
我尝试使用Android AlarmManager服务调用不工作,android,service,alarmmanager,Android,Service,Alarmmanager,我尝试使用AlarmManager在每天的特定时间(即上午11点)运行服务。但由于某些原因,我的代码不起作用 AlarmManager public class ScheduleHelper { /** * @param context * @param intent * @param hourOfDay */ public static void scheduleDayly(Context context){ Calen
AlarmManager
在每天的特定时间(即上午11点)运行服务。但由于某些原因,我的代码不起作用
AlarmManager
public class ScheduleHelper {
/**
* @param context
* @param intent
* @param hourOfDay
*/
public static void scheduleDayly(Context context){
Calendar cal = new GregorianCalendar();
cal.set(Calendar.HOUR_OF_DAY, 11);
cal.set(Calendar.MINUTE, 0);
cal.set(Calendar.SECOND, 0);
Intent intent = new Intent(context, NotificationService.class);
schedule(context, intent, cal, AlarmManager.INTERVAL_DAY, 1337);
}
/**
* @param context
* @param intent
* @param calendar
*/
private static void schedule(Context context, Intent intent,
Calendar calendar, long alarmManagerTimeInterval, int requestCode) {
PendingIntent pendingIntent = PendingIntent.getBroadcast(context,
requestCode, intent, 0);
Toast.makeText(context, "Running in " + (System.currentTimeMillis()-calendar.getTimeInMillis()) + " ms", Toast.LENGTH_LONG).show();
AlarmManager alarmManager = (AlarmManager) context
.getSystemService(Context.ALARM_SERVICE);
alarmManager.setRepeating(AlarmManager.RTC_WAKEUP,
calendar.getTimeInMillis(), alarmManagerTimeInterval,
pendingIntent);
}
}
通知服务
public class NotificationService extends Service {
@Override
public IBinder onBind(Intent intent) {
return null;
}
@Override
public void onCreate() {
Log.i("Service", "service created");
super.onCreate();
}
@Override
public void onStart(Intent intent, int startId) {
Log.i("Service", "service started");
//Todo: create notification
super.onStart(intent, startId);
}
@Override
public void onDestroy() {
super.onDestroy();
Log.i("Service", "service destroyed");
}
@Override
public int onStartCommand(Intent intent, int flags, int startId) {
Log.i("Service", "service start command received");
return Service.START_STICKY;
}
}
根据LogCat,该服务从未创建或启动(我还尝试将日历设置为5分钟后,结果相同)
你能告诉我我做错了什么吗?不幸的是,在这里通读关于同一主题的几个问题无助于解决问题。要使用具有挂起意图的服务,请使用:
PendingIntent pendingIntent = PendingIntent.getService(context,
requestCode, intent, 0);
这是当你想从你的等待的意图广播一些东西的时候
PendingIntent pendingIntent = PendingIntent.getBroadcast(context,
requestCode, intent, 0);
您是否已将您的服务添加到清单中?