簡體   English   中英

單頭通知按鈕不執行

[英]Heads-up Notification Buttons Not Executing

我一直在尋找幾個小時,但無法找到解決問題的方法。 有誰知道如何讓抬頭通知按鈕調用廣播? 我的代碼:

警報接收器通知生成器:

       NotificationCompat.Builder builder =
            new NotificationCompat.Builder(context)
                    .setSmallIcon(R.drawable.alarmicon)
                    .setContentTitle("Alarm for " + timeString)
                    .setContentText(MainActivity.alarmLabel.getText().toString())
                    .setDefaults(Notification.DEFAULT_ALL) // must requires VIBRATE permission
                    .setPriority(NotificationCompat.PRIORITY_HIGH); //must give priority to High, Max which will considered as heads-up notification

    //set intents and pending intents to call service on click of "dismiss" action button of notification
    Intent dismissIntent = new Intent(context, notificationButtonAction.class);
    dismissIntent.setAction(DISMISS_ACTION);
    PendingIntent piDismiss = PendingIntent.getBroadcast(context, 0, dismissIntent, 0);
    builder.addAction(R.drawable.alarmoff, "Dismiss", piDismiss);

    //set intents and pending intents to call service on click of "snooze" action button of notification
    Intent snoozeIntent = new Intent(context, notificationButtonAction.class);
    snoozeIntent.setAction(SNOOZE_ACTION);
    PendingIntent piSnooze = PendingIntent.getBroadcast(context, 0, snoozeIntent, 0);
    builder.addAction(R.drawable.snooze, "Snooze", piSnooze);

    // Gets an instance of the NotificationManager service
    NotificationManager notificationManager =
            (NotificationManager) context.getSystemService(Context.NOTIFICATION_SERVICE);
    //to post your notification to the notification bar with a id. If a notification with same id already exists, it will get replaced with updated information.
    notificationManager.notify(0, builder.build());

notificationButtonAction:

public static class notificationButtonAction extends BroadcastReceiver {
    @Override
    public void onReceive(Context context, Intent intent) {
        System.out.println("notificationButtonAction Started");
        String action = intent.getAction();
        if (SNOOZE_ACTION.equals(action)) {
            stopAlarm();
            System.out.println("Alarm Snoozed");
            MainActivity ma = new MainActivity();
            ma.setAlarm(true);
        }
        else if (DISMISS_ACTION.equals(action)) {
            stopAlarm();
            System.out.println("Alarm Dismissed");
        }
    }
}

我在notificationButtonAction中的打印行不打印,甚至沒有“notificationButtonAction Started”。

我遵循了Brevity Software( http://www.brevitysoftware.com/blog/how-to-get-heads-up-notifications-in-android/ )的教程,但他們的代碼似乎沒有用。

任何幫助表示贊賞! 謝謝!

事實證明,我沒有將類添加到清單中。 我的代碼很好。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM