【问题标题】:Notification doesn't show up when activity is closed活动关闭时不显示通知
【发布时间】:2013-02-27 05:18:43
【问题描述】:

我正在尝试在一年中的某一天发生时显示通知。我似乎无法弄清楚如何获得Android。我怎样才能让android每天检查这个应用程序?

cal = Calendar.getInstance();
    dayOfYear = cal.get(Calendar.DAY_OF_YEAR);

    payDays = new int[12];

    payDays[0] = 60;
    payDays[1] = 88;
    payDays[2] = 123;
    payDays[3] = 151;...

    // Checks when to send the notification
    if (dayOfYear == payDays[0] || 
        dayOfYear == payDays[1] ||
        dayOfYear == payDays[2] ||
        dayOfYear == payDays[3] ||

    {

        Builder builder = new Notification.Builder(this)
        .setContentTitle("Phone Commission")
        .setContentText("Expand for totals")
        .setSmallIcon(R.drawable.notify2);


        Notification notification = new Notification.BigTextStyle(builder)
                .bigText("Add-a-Line: " + AALNote +
                         "\nUpgrades: " + UPGNote +
                         "\nNew Lines: " + NLNote +
                         "\nYour total commission is: " + "$" + totalNote).build();

            NotificationManager notify = (NotificationManager) getSystemService(NOTIFICATION_SERVICE);
              notify.notify(0, notification);

    }

【问题讨论】:

    标签: java android android-intent notifications android-pendingintent


    【解决方案1】:

    您需要设置闹钟。你不能在 Activity 中做这样的事情。您应该在服务中设置该警报,因为在 Activity 中这样做会使其在 Activity 完成后丢失。

    【讨论】:

    • API 是 AlarmManager 吗?
    • 是的。它基本上允许您设置一个 PendingIntent,当时间过去时将调用它。您可以让它使用超准确的版本或不太准确的版本。对于您的情况,我会使用不太准确的情况,几秒钟无关紧要。请注意,这不适用于重新启动,为此您必须让广播接收器侦听 BOOT_COMPLETE 并启动您的服务。
    最近更新 更多