簡體   English   中英

觸摸通知后如何打開活動?

[英]How can I open activity when notification is touched?

我正在為音樂播放器建立notification ,因此它會顯示正在播放的音樂。 但是我想在觸摸時在其中添加一個功能。 它將打開我的布局player.xml 通過MainActivity.class部署。

我研究了developer.android.com上的Notifications,並找到了一種在單擊通知時進行部署和活動的方法。 但這沒有用。

這是我當前的代碼-

Notification.Builder builder = new Notification.Builder(getApplicationContext());
                builder.setContentTitle(songsList.get(songIndex).get("songTitle"));
                builder.setContentText("NexPlay™");
                builder.setTicker(songsList.get(songIndex).get("songTitle"));
                builder.setSmallIcon(R.drawable.ic_launcher);
                builder.setSmallIcon(R.drawable.play_default);
                builder.setAutoCancel(true);
                builder.setPriority(0);
                builder.setOngoing(true);           
                Notification notification = builder.build();
                NotificationManager notificationManger = 
                (NotificationManager) getSystemService(Context.NOTIFICATION_SERVICE);           
                notificationManger.notify(01, notification);

感謝大家的回答!

我加了

PendingIntent pendingIntent = PendingIntent.getActivity(this, 0, new Intent(this, NotificationToPlayer.class), 0);
builder.setContentIntent(pendingIntent);

到我的通知,效果很好!

您還需要添加一個意圖。 就像是:

Intent actIntent = new Intent(this, do MyActivity.class);

然后在您的構建器中:

.setContentIntent(PendingIntent.getActivity(MyActivity, 131314, actIntent,
                  PendingIntent.FLAG_UPDATE_CURRENT))

您需要在您的代碼上添加意圖:

int icon = R.drawable.app_launcher;
                long when = System.currentTimeMillis();
                NotificationManager notificationManager = (NotificationManager) context.getSystemService(Context.NOTIFICATION_SERVICE);

                Notification notification = new Notification(icon, message.split(":::")[1], when);

                String title = context.getString(R.string.app_name);
                Intent notificationIntent = null;
                    notificationIntent = new Intent(context, MessageDetail.class);

                PendingIntent intent = PendingIntent.getActivity(context, 0, notificationIntent, PendingIntent.FLAG_UPDATE_CURRENT);
                notification.setLatestEventInfo(context, title, message.split(":::")[1], intent);
                notification.flags |= Notification.FLAG_AUTO_CANCEL;

                // Play default notification sound
                notification.defaults |= Notification.DEFAULT_SOUND;
                // Vibrate if vibrate is enabled
                notification.defaults |= Notification.DEFAULT_VIBRATE;
                notificationManager.notify(0, notification);

嘗試這個

 private void showNotification() {
        // In this sample, we'll use the same text for the ticker and the expanded notification
        CharSequence text = getText(R.string.service_started);

        // Set the icon, scrolling text and timestamp
        Notification notification = new Notification(R.drawable.android, text,
                System.currentTimeMillis());

        // The PendingIntent to launch our activity if the user selects this notification
        PendingIntent contentIntent = PendingIntent.getActivity(this, 0,
                new Intent(this, ServiceLauncher.class), 0);

        // Set the info for the views that show in the notification panel.
        notification.setLatestEventInfo(this, getText(R.string.service_label),
                       text, contentIntent);
        notification.defaults |= Notification.DEFAULT_SOUND;
        // Send the notification.
        // We use a layout id because it is a unique number.  We use it later to cancel.
        nm.notify(R.string.service_started, notification);
    }

希望這能解決您的問題

暫無
暫無

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

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