2011-08-12 30 views
37

Tôi muốn có thể kích hoạt thông báo để cảnh báo người dùng về bộ hẹn giờ đã hoàn tất, tuy nhiên tôi không muốn có ý định khi bạn nhấp vào thông báo.Android - trình quản lý thông báo, có thông báo mà không có ý định

Tôi đã thử đi qua trong null cho mục đích

String ns = Context.NOTIFICATION_SERVICE; 
NotificationManager mNotificationManager = (NotificationManager) context.getSystemService(ns); 

int icon = R.drawable.icon; 
CharSequence tickerText = "Hello"; 
long when = System.currentTimeMillis(); 

Notification notification = new Notification(icon, tickerText, when); 

CharSequence contentTitle = "My notification"; 
CharSequence contentText = "Hello World!"; 

notification.setLatestEventInfo(context, contentTitle, contentText, null); 
mNotificationManager.notify(HELLO_ID, notification); 
+2

Chỉ là cảnh báo về phương thức vô giá trị này - Tôi cũng đang tìm câu trả lời này. Trên HTC Desire của tôi điều này gây ra một khởi động lại của thiết bị! Khá tệ, vì thông báo đã được tạo trên Khởi động - vì vậy tôi đã tham gia vào một chu trình khởi động-khởi động lại ... –

+1

Cũng thú vị là các tác phẩm hoạt động tốt trên trình giả lập 4.0. Nó gây ra một FC trên Galaxy S2 của tôi (2.3). – Timmmm

+0

Thực sự hữu ích của nó.Cảm ơn rất nhiều – Sakthimuthiah

Trả lời

76

Bạn có thể vượt qua các tham số

PendingIntent.getActivity(getApplicationContext(), 0, new Intent(), 0) 

thay vì

null 

trên

notification.setLatestEventInfo(context, contentTitle, contentText, null);

+0

Hoạt động! Tuyệt vời. +1 –

+0

Tôi đã gọi từ một người phát sóng và thấy rằng nó đã được đưa ra với một ngoại lệ null. Tuy nhiên tôi đã cố gắng lớp này tôi tìm thấy (một số người đã làm cho một lớp thông báo) và rực rỡ của nó - kiểm tra xem nó ra http://stackoverflow.com/questions/5626946/call-notification-from-broadcastreceiver – Garbit

+0

Điều này thực sự hữu ích. Tôi không biết, những gì một Intent tạo ra với một nhà xây dựng có sản phẩm nào nên làm, nhưng nó hoạt động hoàn hảo trên cả 4.0 + và 2.2 cho tôi :) Cảm ơn! –

1

Thú vị câu hỏi và tôi muốn để xem nếu công trình này. Tôi đã làm một chút đào và tìm thấy rất nhiều ppl hỏi cùng một câu hỏi. cbursk dường như đã tìm thấy một hack để có được chức năng dự định này, đó là để vượt qua một Dialog đến mục đích thông báo thay vì một Activity. Tôi đoán rằng Dialog không làm gì, hoặc được lập trình để loại bỏ chính nó ngay lập tức, không chắc chắn. Nhưng hiện tại tôi đang looking at this thread và sẽ thử nghiệm.

9

Tham số cuối cùng trong setLatestEventInfo() là một PendingIntent và không phải là một Intent. Nếu bạn cần thông báo để không làm bất cứ điều gì khi khai thác là để vượt qua một PendingIntent rỗng được thực hiện như sau: PendingIntent.getActivity (context, 0, null, 0).

+0

Bot này và câu trả lời accepeted làm việc tốt nhưng điều này là đơn giản hơn, không cần phải tạo ra một 'Intent' rỗng khi bạn chỉ có thể vượt qua' null'. –

+1

Truyền 'null' khiến lực lượng đóng trong Android 4.1 – Darcy

Các vấn đề liên quan