Android 闹钟是不会被叫来的

Android 闹钟是不会被叫来的,android,service,alarmmanager,Android,Service,Alarmmanager,我正在从服务ScheduleAdvanceBookingService调用警报,以便在预定时间调用另一个服务SendRequestAdvanceBookingService 清单文件已被删除 <service android:name=".ScheduleAdvanceBookingService" android:enabled="true" android:label="@string/app_name" /> &l

我正在从服务
ScheduleAdvanceBookingService
调用警报,以便在预定时间调用另一个服务
SendRequestAdvanceBookingService

清单文件已被删除

    <service
        android:name=".ScheduleAdvanceBookingService"
        android:enabled="true"
        android:label="@string/app_name" />
    <service
        android:name=".SendRequestAdvanceBookingService"
        android:enabled="true"
        android:label="@string/app_name" >
        <intent-filter>
            <action android:name="android.intent.action.NOTIFY" />
        </intent-filter>
    </service>
我未来的报警服务是

public class SendRequestAdvanceBookingService extends Service {


public SendRequestAdvanceBookingService() {
    super();
    handler = new Handler();
}

@Override
public int onStartCommand(Intent intent, int flags, int startId) {
    Log.d("Taxeeta", "Start - SEND REQUEST.");
调试语句以检查日期

08-20 13:40:14.008:D/Taxeta(31578):计划在2014年8月20日13:41:37自动预订

我错过了什么

我试过了

  • 移除意图过滤器和addAction,仍然不会开火
  • 直接使用startTime而不是使用
    cal.setTime(startTime)cal.getTimeInMilli()

  • 修复非常简单,任何地方都没有文档记录

    我运行了
    /adb shell dumpsys alarm>~/dump.txt
    ,并在我的设备上搜索我的报警。我在我的应用程序的设备上发现了许多待处理的警报。这促使我进行清理,并从设置->应用程序->MyApp->强制关闭中强制关闭警报

    然后我运行了我的应用程序,它成功了。过了一会儿,我才意识到之前没有运行该应用程序的手机工作得很好,这暗示我要再次进行清理

    所以我需要做的就是

    autoBookingAlarm.cancle(autoBookingPendingIntent);
    

    autoBookingAlarm.set(AlarmManager.RTC_WAKEUP, alarmCallTime,
            autoBookingPendingIntent);
    

    这将在安排新的警报之前取消以前的警报。

    如何调用该服务?报警代码在哪里?尝试删除
    newIntent.addFlags(Intent.FLAG\u ACTIVITY\u NEW\u TASK)
    android:theme=“@android:style/theme.Light.NoTitleBar”
    对于服务来说是无用的。不,删除FLAG\u ACTIVITY\u NEW\u任务不起作用请检查您的日期实例,看您是否从意图中获得了正确的日期。
    autoBookingAlarm.set(AlarmManager.RTC_WAKEUP, alarmCallTime,
            autoBookingPendingIntent);