Java AlarmManager没有';我好像不工作

Java AlarmManager没有';我好像不工作,java,android,broadcastreceiver,alarmmanager,Java,Android,Broadcastreceiver,Alarmmanager,我正在尝试使用AlarmManager计划调用一个方法,但它似乎不起作用。我看过其他的例子,他们的不适合我。所以我认为这是我的代码。以下是AlarmManager代码: AlarmManager alarmManager = (AlarmManager) getSystemService(ALARM_SERVICE); Intent intent = new Intent(SplashScreenActivity.this, KinectReceiver.class); PendingInte

我正在尝试使用
AlarmManager
计划调用一个方法,但它似乎不起作用。我看过其他的例子,他们的不适合我。所以我认为这是我的代码。以下是
AlarmManager
代码:

AlarmManager alarmManager = (AlarmManager) getSystemService(ALARM_SERVICE);
Intent intent = new Intent(SplashScreenActivity.this, KinectReceiver.class);

PendingIntent pendingIntent = PendingIntent.getBroadcast(SplashScreenActivity.this, 0, intent, 0);

Calendar calendar = Calendar.getInstance();
calendar.setTimeInMillis(System.currentTimeMillis());
calendar.set(Calendar.HOUR_OF_DAY, 2);
calendar.set(Calendar.MINUTE, 25);
alarmManager.setRepeating(AlarmManager.RTC_WAKEUP,
        calendar.getTimeInMillis(), AlarmManager.INTERVAL_DAY, pendingIntent);
和我的广播接收器:

public class KinectReceiver extends BroadcastReceiver {
    @Override
    public void onReceive(Context context, Intent intent) {
        Toast.makeText(context, "Done", Toast.LENGTH_LONG).show();
        Uri uri = RingtoneManager.getDefaultUri(RingtoneManager.TYPE_NOTIFICATION);
        NotificationCompat.Builder builder = new NotificationCompat.Builder(context)
                .setSmallIcon(R.drawable.ic_stat_notify)
                .setContentTitle("Kinect")
                .setColor(ContextCompat.getColor(context, R.color.colorAccent))
                .setWhen(System.currentTimeMillis())
                .setContentText("Your Kinects and Likes have been refilled. Now get to swiping")
                .setAutoCancel(true)
                .setSound(uri)
                .setStyle(new NotificationCompat.BigTextStyle()
                        .bigText("Your Kinects and Likes have been refilled. Now get to swiping"))
                .setVibrate(new long[] { 100, 500, 100, 500, 100 });

        Intent targetIntent = new Intent(context, MainActivity.class);
        targetIntent.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
        targetIntent.putExtra("action", "main");
        targetIntent.putExtra("id", "");
        PendingIntent pendingIntent = PendingIntent.getActivity(context, 0, intent, PendingIntent.FLAG_ONE_SHOT);
        builder.setContentIntent(pendingIntent);

        NotificationManager notificationManager = (NotificationManager) context.getSystemService(NOTIFICATION_SERVICE);
        notificationManager.notify(0, builder.build());
    }
}
祝酒词和通知都没有显示出来


AlarmManager
代码是在我的启动程序活动中运行的第一个代码,以防有帮助。谢谢

请像这样在Manifeat文件中注册您的接收者

应用程序内标签

<receiver
   android:name=".KinectReceiver">

请像这样在Manifeat文件中注册您的接收者

应用程序内标签

<receiver
   android:name=".KinectReceiver">

第二个问题是如何取消报警

这是你的答案

Intent myIntent = new Intent(MainActivity.this, AlarmActivity.class);
   pendingIntent = PendingIntent.getActivity(CellManageAddShowActivity.this,
       id, myIntent, PendingIntent.FLAG_UPDATE_CURRENT);
   pendingIntent.cancel();
   alarmManager.cancel(pendingIntent);
您需要的主要内容是:

1) .创建具有相同id和适当意图标志的挂起意图。 2) .取消该未决意图。
3) 。使用报警管理器取消报警。

第二个问题是如何取消报警

这是你的答案

Intent myIntent = new Intent(MainActivity.this, AlarmActivity.class);
   pendingIntent = PendingIntent.getActivity(CellManageAddShowActivity.this,
       id, myIntent, PendingIntent.FLAG_UPDATE_CURRENT);
   pendingIntent.cancel();
   alarmManager.cancel(pendingIntent);
您需要的主要内容是:

1) .创建具有相同id和适当意图标志的挂起意图。 2) .取消该未决意图。
3) 。使用报警管理器取消报警。

KinectReceiver
的清单中是否有
元素?还要注意的是,
HOUR\u OF_DAY
是基于24小时的时钟,所以2是凌晨2点。我不。我如何实现这一点。是的,我知道
日历对象是如何工作的。我只是用它来测试。我测试它的时候是凌晨2点:
是的,就是这样,假设它在
实用程序/
中。确保它位于
标记之间。在
KinectReceiver
的清单中是否有
元素?还要注意的是,
HOUR\u OF_DAY
是基于24小时的时钟,所以2是凌晨2点。我不。我如何实现这一点。是的,我知道
日历对象是如何工作的。我只是用它来测试。我测试它的时候是凌晨2点:
是的,就是这样,假设它在
实用程序/
中。确保它位于
标记之间。不过,格雷尔很乐意帮你回答我的第一个快速问题。我该如何取消一个正在进行的警报计划呢?格雷尔很乐意帮你回答我的第一个问题。如何取消正在进行的报警计划?不,这将取消您使用相同id设置的报警,如果您对所有报警使用相同id,则将取消所有报警。您还可以从google开发者站点检查其他PendingEvent标志以取消所有报警。哦,好的。感谢您的帮助。这将取消您使用相同的id设置的报警,如果您对所有报警使用相同的id,那么将取消所有报警。您还可以检查其他PendingEvent标志,以从google开发者站点取消所有报警。哦,好的。谢谢你的帮助