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处于活动状态,我正在等待通知。让我检查一下打瞌睡模式。谢谢