我现在正在寻找几个小时如何做到这一点:
我希望每天(周末除外)一次发送通知(比如说 18:00(= 下午 6 点)),除非应用程序已经打开。它基本上就像您收到邮件时的 gmail 应用程序。当用户单击通知时,它应该会消失并被带到 MainActivity。
我用 AlarmManager 尝试了很多东西,但没有一个会导致出现通知。
我尝试过的代码非常接近正确,如下所示: 在我的 MainActivity 中:
AlarmManager alarmManager = (AlarmManager) this.getSystemService(ALARM_SERVICE);
Calendar calendar = Calendar.getInstance();
calendar.set(Calendar.HOUR_OF_DAY, 18);
Intent intent = new Intent(this, NotificationService.class);
PendingIntent pendingIntent = PendingIntent.getActivity(this, 0, intent, 0);
alarmManager.set(AlarmManager.RTC_WAKEUP, calendar.getTimeInMillis(), pendingIntent);
我的通知服务:
public class NotificationService extends IntentService {
public NotificationService() {
super("NotificationService");
}
@Override
@SuppressWarnings("deprecation")
protected void onHandleIntent(Intent intent) {
NotificationManager nm = (NotificationManager) getSystemService(NOTIFICATION_SERVICE);
Notification notification = new Notification(R.drawable.ic_launcher, "reminder", System.currentTimeMillis());
notification.defaults |= Notification.DEFAULT_SOUND;
notification.flags |= Notification.FLAG_AUTO_CANCEL;
Intent notificationIntent = new Intent(this, MainActivity.class);
PendingIntent contentIntent = PendingIntent.getActivity(this, 0, notificationIntent , 0);
notification.setLatestEventInfo(getApplicationContext(), "It's about time", "You should open the app now", contentIntent);
nm.notify(1, notification);
}
}
请注意,我使用了不推荐使用的东西,因为这甚至是在不使用 AlarmManager 时出现通知的唯一方式。如果可能,请使用其中没有已弃用内容但具有最新内容的解决方案:P。
很多很多提前谢谢!!!
最亲切的问候