AlarmManager'ı kullanarak alarmı ayarlayan bir uygulama var. AlarmManager bir PendingIntent alır ve belirtilen zaman geldiğinde BroadcastReceiver sınıfı açar. Bu BroadcastReceiver'a PendingIntent'e giren Intent nesnesi üzerinden argümanları iletmenin herhangi bir yolu olup olmadığını merak ediyorum.Android'de bir Niyet aracılığıyla bir BroadcastReceiver öğesine argümanlar iletme
Temelde Yapmak istediğim şey böyle bir şeydir:
Intent my_intent = new Intent(this, BroadcastService.class);
PendingIntent pendingIntent = PendingIntent.getBroadcast(this, 0, my_intent, 0);
my_intent.putExtra("arg1", arg1);
AlarmManager alarmManager = (AlarmManager) getSystemService(ALARM_SERVICE);
alarmManager.set(AlarmManager.RTC_WAKEUP, System.currentTimeMillis() + (1000), pendingIntent);
ve ben BroadcastReceiver en OnReceive (Bağlam, Niyet) yöntemi içinde ARG1 almak edebilmek istiyorum. Yerel değişken my_intent'in PendingIntent tarafından onReceive'a iletilen ikinci parametre olacağını düşündüm, ancak görünüşe göre bu doğru değil. Bir Aktivite ile BroadcastReceiver arasında bu modada parametreler iletilebilir mi (Intent.putExtra() kullanılarak) veya bunun yerine bir ContentProvider kullanmalı mıyım?
Teşekkürler!
Iva
Ah evet, yanlış konuştum; Alarmı belirli bir zamanda belirli bir aktiviteyi çağırmak için bir cadde olarak kullanıyorum ve alarm çaldığında, kullanıcının daha sonra ne zaman uygun bir yere düştüğü ve sadece aktiviteyi çağırdığı bir bildirim oluşturuyorum. Yaptıklarında ne olursa olsun rahatsız etmeyin. Cevabınız için teşekkürler! – ivcheto
Hmm, PendingIntent.FLAG_UPDATE_CURRENT değerini PendingIntent öğesinin bir şey değiştirirken görünmeyeceği şekilde ekleyerek; Orijinal Aktivite'mdeki amacımdan gelen ekleri hala onLece – ivcheto
'a iletilen niyete alamıyorum. PendingIntent'i oluşturmadan önce putExtra() yöntemini mi çağırıyorsunuz? PendingIntent, Intent'i serileştirdiğinde bunu bilmiyorum, ancak eğer hemen yaparsa, PendingIntent'i oluşturduktan sonra putExtra() çağrıları hiçbir etki yapmaz. – CommonsWare