Android ekstra taze tutar bekleyen bir niyet bildirmek için nasıl Ekstra, benim niyet önbelleği tutar?
Birkaç gün önce benim alarmlar için özel bir niyet kullanmak için bir yol bulmak için mücadele ediyorum. Net bir cevap aldım ancak Niyet bazı benzersiz KİMLİĞİ eg dayalı özelleştirmek için var. setAction()
hala bazı sorunları var.
Ben bir Pendingİntent bu şekilde tanımlayın:
Intent intent = new Intent(this, viewContactQuick.class);
intent.setAction("newmessage" objContact.getId());//unique per contact
intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK ).addFlags(Intent.FLAG_ACTIVITY_SINGLE_TOP );
intent.putExtra("id", Long.parseLong(objContact.getId()));
intent.putExtra("results", result.toArray());
PendingIntent contentIntent = PendingIntent.getActivity(context, 0, intent, 0);
bu bildirim yöneticisi tarafından kullanılır
NotificationManager mNotificationManager = (NotificationManager) context.getSystemService(ns);
// first try to clear any active notification with this contact ID
mNotificationManager.cancel(Integer.parseInt(objContact.getId()));
// then raise a new notification for this contact ID
mNotificationManager.notify(Integer.parseInt(objContact.getId()), notification);
Bu gibi çalışır:
- uygulama bir kişi için bir mesaj oluşturur
- bir niyet temas kimliği ve mesajı hakkında ayrıntılı bilgi ile sunulmaktadır
- bildirim iletisi ile oluşturulur
- bildirim kullanıcı actiones ve uygulaması mesaj hedefini geçti görüntüler
Sorun
Bu birden fazla kişi için olabilir. Ve ne zaman ikinci mesajı oluşturulur, bildirim. (ince mesaj var) ama niyet ne zaman kullanıcı eylemleri bildirim kullandığı eski veri, bu yüzden önceki mesajı geçti ve Yeni Mesaj.
Yani bir şekilde. Nasıl eylem başına kişi başına ve benzersiz yapabilir miyim?
CEVAP
Eğer sadece bir tane PendingIntents
Bu temas olacak olağanüstü herhangi bir noktada zaman, her zaman kullanmak son seti ekstra kullanım FLAG_UPDATE_CURRENT
oluşturduğunuzda PendingIntent
.
Birden fazla kişiye özel PendingIntent
olağanüstü bir seferde olacak, ve ayrı bir yedek tutmak gerekiyorsa, bir sayı veya zaman damgası falan onları ayırmak için eklemek gerekir.
intent.setAction("actionstring" System.currentTimeMillis());
GÜNCELLEME
Ayrıca, hafifçe belgelenmiş ikinci parametre getActivity()
gibilere PendingIntent
anlaşılan oluşturmak için kullanılabilir farklı PendingIntent
nesneleri için aynı temel Intent
gerçi ben hiç denemedim bu.
Nasıl bir Niyet kullanarak bir Android...
Yayın niyet ACTİON_SCREEN_ON/KAPALI al...
Nasıl Android global değişkenleri bild...
Nasıl Eclipse Android Öykünücüsü http:...
Kullanarak başka bir faaliyet gösterme...