0

所以我的目标是让我的应用程序在一天中的特定时间为用户创建通知。为此,我使用 AlarmManager 设置警报,然后当警报“响起”时,它将创建一个通知。这是它的设置方式 -

第 1 类 - 创建警报 第 2 类 - 创建通知 第 3 类 - 来自通知的响应

因为在创建警报和通知时使用了“意图”,所以我制作了这 3 个类。

这是我的代码 -

cal = Calendar.getInstance();
    cal.add(Calendar.SECOND, 30);
    calintent = new Intent(this, NotificationMaker.class);
    calpendingintent = PendingIntent.getActivity(this, 12345, calintent, PendingIntent.FLAG_CANCEL_CURRENT);
    am = (AlarmManager)getSystemService(Activity.ALARM_SERVICE);
    am.set(AlarmManager.RTC_WAKEUP, cal.getTimeInMillis(), calpendingintent);

它调用 NotificationMaker 类,其中 -

    notifintent= new Intent(this, NotificationReceiver.class);
    notifpendingintent = PendingIntent.getActivity(this, 0, notifintent, 0);

    notif = new Notification.Builder(this)
        .setContentTitle("Time To Smoke!")
        .setContentIntent(notifpendingintent)
        .addAction(R.drawable.background_teal, "Open App", notifpendingintent)
        .addAction(R.drawable.background_red, "I smoked", notifpendingintent).build();
    notifm = (NotificationManager)getSystemService(NOTIFICATION_SERVICE);
    notif.flags |= Notification.PRIORITY_MAX;
    notif.flags |= Notification.FLAG_NO_CLEAR;
    notif.flags |= Notification.FLAG_AUTO_CANCEL;

    notifm.notify(0, notif);

正在发出通知。我对此有几个问题:

1)我可以在不使用多个类的情况下执行我想做的两个任务吗?如果是这样,怎么做?(在同一班级发出警报和通知)。2) 只要​​警报响起,就会打开一个空白布局,然后发出通知。我如何不打开空白页?3)有没有更有效的方法来执行这两个任务(发出警报以创建定时通知)。

提前致谢!

4

1 回答 1

0

据我所知,您正在使用 Activity 来创建通知 - 更好的是使用 BroadcastReciever 并使用 AlarmManager 以待定意图开始广播。

有关 BroadcastReceiver 的更多详细信息,请参见此处

于 2013-07-11T07:56:34.030 回答