Android:每天固定时间从应用程序注销

Android:每天固定时间从应用程序注销,android,alarmmanager,Android,Alarmmanager,我需要在我的应用程序中设置一个固定时间的警报,用户将收到一个从应用程序注销并再次登录的通知(警报对话框)。我正在尝试使用报警管理器。下面是代码,我试过了,但没有给出任何通知 在活动中设置报警: loginAlarm = new LoginAlarmReceiver(); loginAlarm.setAlarm(NewDashboardActivity.this); 逻辑接收机 public class LoginAlarmReceiver extends WakefulBroadcastRec

我需要在我的应用程序中设置一个固定时间的警报,用户将收到一个从应用程序注销并再次登录的通知(警报对话框)。我正在尝试使用报警管理器。下面是代码,我试过了,但没有给出任何通知

在活动中设置报警:

loginAlarm = new LoginAlarmReceiver();
loginAlarm.setAlarm(NewDashboardActivity.this);
逻辑接收机

public class LoginAlarmReceiver extends WakefulBroadcastReceiver {

    private AlarmManager alarmMgr;

    private PendingIntent alarmIntent;

    @Override
    public void onReceive(Context context, Intent intent) {
        Intent notificationIntent = new Intent(context, LoginActivity.class);
        PendingIntent resultPendingIntent =
                PendingIntent.getActivity(
                        context,
                        0,
                        notificationIntent,
                        PendingIntent.FLAG_UPDATE_CURRENT
                );


        NotificationCompat.Builder builder = new NotificationCompat.Builder(context);
        Uri defaultSoundUri= RingtoneManager.getDefaultUri(RingtoneManager.TYPE_NOTIFICATION);
        NotificationCompat.Builder notification = new NotificationCompat.Builder(context).setContentTitle("Login")
                .setContentText("Please logout/login again")
                //.setTicker("New Message Alert!")
                .setSmallIcon(R.drawable.*****)
                .setSound(defaultSoundUri)
                .setAutoCancel(true)
                ;
        notification.setContentIntent(resultPendingIntent);
        NotificationManager notificationManager = (NotificationManager) context.getSystemService(Context.NOTIFICATION_SERVICE);
        notificationManager.notify(001, notification.build());
        Utils.alertDialogShow(context,context.getString(R.string.login_message));
    }

    // BEGIN_INCLUDE(set_alarm)

    public void setAlarm(Context context) {
        alarmMgr = (AlarmManager)context.getSystemService(Context.ALARM_SERVICE);
        Intent intent = new Intent(context, LoginAlarmReceiver.class);
        alarmIntent = PendingIntent.getService(context, 0, intent,PendingIntent.FLAG_UPDATE_CURRENT);

        Calendar calendar = Calendar.getInstance();
        //calendar.setTimeInMillis(System.currentTimeMillis());
        // Set the alarm's trigger time to 8:30 a.m.
        calendar.set(Calendar.HOUR_OF_DAY, 9);
        calendar.set(Calendar.MINUTE, 10);
        calendar.set(Calendar.SECOND, 0);

        alarmMgr.setInexactRepeating(AlarmManager.RTC_WAKEUP,
                calendar.getTimeInMillis(), AlarmManager.INTERVAL_DAY, alarmIntent);

    }
    // END_INCLUDE(set_alarm)


    // BEGIN_INCLUDE(cancel_alarm)
    public void cancelAlarm(Context context) {
            if (alarmMgr!= null) {
            alarmMgr.cancel(alarmIntent);
        }
    }
    // END_INCLUDE(cancel_alarm)
}
我尝试将断点放在“OnReceive”上,但在设定的时间内从未调用该断点。上述代码为上午9:10

在清单文件中,报警接收器的定义如下:

 <receiver android:name=".broadcast.LoginAlarmReceiver">
            <intent-filter>
                <action android:name="android.media.action.DISPLAY_NOTIFICATION" />

                <category android:name="android.intent.category.DEFAULT" />
            </intent-filter>
        </receiver>

 <uses-permission android:name="android.permission.WAKE_LOCK">
    </uses-permission>


我检查了设备上的应用程序设置,并为应用程序启用了通知。请告知我遗漏了什么。

如果您已经安装了应用程序,但尚未打开,它将不会接收广播。其次,这可能是由于打瞌睡模式,alsoApp处于活动状态,我正在等待通知。让我检查一下打瞌睡模式。谢谢