通知报警管理器工作不正常

问题描述 投票:-1回答:1

我已经使用警报管理器在Android中用于显示一些通知,但它不能正常工作。

我的活动代码是:

Intent i = new Intent(this, AlarmBroadcastReceiver.class);

        PendingIntent pendingIntent = PendingIntent.getBroadcast(this, 0, i, 0);
        AlarmManager alarmManager = (AlarmManager)this.getSystemService(Context.ALARM_SERVICE);

        alarmManager.cancel(pendingIntent);
        alarmManager.setExact(AlarmManager.RTC_WAKEUP, System.currentTimeMillis() + (int) (10*60 * 1000),
                pendingIntent);

15分钟后,用于接收通知的代码是:

        AlarmManager am = (AlarmManager) context.getSystemService(Context.ALARM_SERVICE);
        Intent intent = new Intent(context, AlarmBroadcastReceiver.class);
        PendingIntent pi = PendingIntent.getService(context, 0, intent, 0);
        am.cancel(pi);
        am.setExact(AlarmManager.ELAPSED_REALTIME_WAKEUP,
                SystemClock.elapsedRealtime() +
                        (int) ( 5*60 * 1000), pi);
android alarmmanager
1个回答
1
投票

当您使用服务,而不是你需要改变的getService insted的getBroadCast的使用这种类型的AlarmManager的。有时接收方禁止在一些设备中打电话,也科瑞问题,当应用程序在后台

   Intent intent = new Intent(myContext, SetAlarmService.class);
            intent.putExtra("salah",i);
            intent.putExtra("repeat",HowManyTimeRepeatAlarm);
            PendingIntent pendingIntent = PendingIntent.getService(
                    myContext, i, intent, 0);
            AlarmManager alarmManager = (AlarmManager) myContext.getSystemService(ALARM_SERVICE);
           // alarmManager.cancel(pendingIntent);
            alarmManager.setRepeating(AlarmManager.RTC_WAKEUP, reset_cal.getTimeInMillis(),60000 * 2 ,
                    pendingIntent);
© www.soinside.com 2019 - 2024. All rights reserved.