2011-08-12 12 views
37

Kullanıcıları, bittiği zamanlayıcı hakkında uyarmak için bir bildirim atamak istiyorum, ancak bildirimi tıkladığınızda niyetiniz olmasını istemiyorum.Android - bildirim yöneticisi, bir bildirimde bulunmadan bildirimde bulunma

ben niyet

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

Sadece bu boş yöntemle ilgili bir uyarı - Ben de bu cevabı arıyordum. HTC Desire cihazımda bu, cihazın yeniden başlatılmasına neden oluyor! Bildirim, Boot üzerinde oluşturulduğundan beri oldukça kötü - bu yüzden bir boot-reboot-boot döngüsüne girdim ... –

+1

Ayrıca ilginç bir şekilde null 4.0 emülatöründe iyi çalışıyor. Galaxy S2 (2.3) üzerinde bir FC neden olur. – Timmmm

+0

Gerçekten faydalı. Çok teşekkürler – Sakthimuthiah

cevap

76

Sen setLatestEventInfo() son parametre bir PendingIntent değil bir Intent olduğunu

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

+0

İşleri! Muhteşem. +1 –

+0

Bir yayıncıdan arıyorum ve bunun bir null istisnasıyla geldiğini anladım. Ancak ben buldum bu sınıfı denedim (bazı adam bir bildirim dersi yapıyordu) ve onun parlak - kontrol edin http://stackoverflow.com/questions/5626946/call-notification-from-broadcastreceiver – Garbit

+0

Bu gerçekten yardımcı oldu. Bilmiyorum, boş bir construcor ile oluşturulan bir Niyet ne yapmalı, ama benim için hem 4,0 + hem de 2.2'de mükemmel çalışıyor :) Teşekkürler! –

1

İlginç soru için boş geçen denedim ve bu inşaat görmek istiyorum. Biraz kazı yaptım ve aynı soruyu soran bir sürü ppl buldum. cbursk, bir Aktivite yerine bildirim amacına bir Diyalog iletmek için bu amaçlanan işlevselliği elde etmek için bir korsan bulmuş gibi görünüyor. Dialog'un hiçbir şey yapmadığını ya da kendinden emin olmak için programlandığını tahmin ediyorum. Ama şu an looking at this thread yaşıyorum ve test edeceğim.

9

üzerinde parametresini

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

yerine

null 

geçebilir. Eğer dokunulduğunda hiçbir şey yapmamanız için bildirim gerekiyorsa, aşağıdaki gibi yapılan boş bir PendingIntent geçmek için: PendingIntent.getActivity (context, 0, null, 0).

+0

Bot yaptım ve acce cevaplı cevap sadece iyi ama bu daha basit, boş bir 'Niyet 'yaratmak için gerek yok. –

+1

Geçiş yapmak 'null', android 4.1'de zorlamaya neden oluyor – Darcy

İlgili konular