Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/180.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android AlarmManager服务调用不工作_Android_Service_Alarmmanager - Fatal编程技术网

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);

您是否已将您的服务添加到清单中?