SORU
29 HAZİRAN 2010, Salı


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
29 HAZİRAN 2010, Salı


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.

Bunu Paylaş:
  • Google+
  • E-Posta
Etiketler:

YORUMLAR

SPONSOR VİDEO

Rastgele Yazarlar

  • Flash CS6 Video Tutorials for Beginners (Actionscript 3 Gaming)

    Flash CS6 Vi

    14 EYLÜL 2012
  • Microsoft Research

    Microsoft Re

    24 EKİM 2008
  • National Geographic

    National Geo

    7 Mayıs 2006