Soru & Cevap

BroadcastReceiver ve addproximityalert'de çözemediğim i ...

28.07.2014 - 12:48

Merhabalar, 

Bir liste içerisinde alarm mantığıyla çalışan bir işlem yaptırıyorum. Listede;

 

Alarm-1   On

Alarm-2  Off

Alarm-3  On

Alarm-4  On

 

şeklinde kayıtlar olduğunu varsayalım. 

Bir For döngüsü içerisinde Yukrıda On olan kayıtları aşağıdaki metoda gönderiyorum.

       private void setProximityAlert(double lat, double lon,float radius, final long eventID, int requestCode)
        {
            long expiration = -1;
            
            locManager = (LocationManager) getSystemService(Context.LOCATION_SERVICE);
            
            Intent intent = new Intent(PROXIMITY_ACTION);
            intent.putExtra(EVENT_ID_INTENT_EXTRAS, eventID);
            pendingIntent = PendingIntent.getBroadcast(getApplicationContext(), requestCode, intent, PendingIntent.FLAG_CANCEL_CURRENT);
            
            locManager.addProximityAlert(lat, lon, radius, expiration, pendingIntent);

            
            IntentFilter filter = new IntentFilter(PROXIMITY_ACTION);
            receiver = new ProximityIntentReceivers();
            registerReceiver(receiver, filter);

        }

Sorum şu olacak.

ilgili alarmlardan bir tanesi aktif olduğunda (Örneğin Alarm-1) Broadcastreceiver ilgili uyarıyı gönderiyor burada sorun yok. 

bu uyarıdan sonra alarm'ı Off yapmak istiyorum ki tekrar çalışmasın. . BroadcastReceiver içerisinde bunu nasıl yapabilirim. Off yaptıkran sonra Listeyi yenilemem gerekiyor. bunu yeniledikten sonra;

 

Alarm-3 ve Alarm-4 halen On durumda. Bunları daha önce set ettiğim için tekrar set etmem gerekir mi? Off olan kaydı BroadcastReceiver'dan nasıl kaldırabilirm. Broadcastreceiver'in tetiklendikten sonra ömrü nedir. bir kez çalıştığında tekrar çalışır mı? 

 

Teşekkürler. 

 

 

 

 

 

 

 

2 Görüntülenme

1 Cevap

Sitedeki sorulara cevap verebilmek için giriş yapın ya da üye olun.

picture-1372-1408467635.jpg
ahmtbrk
28.07.2014 - 07:14
Broadcasti bir kere register ettiğinde manuel olarak silmediğin sürece uygulama kaldirilana kadar calisir.Bu arka planda smsleri felan dinleyen bilgi hirsizliklari vs bu sistem ile yapiliyor. Sen döngü içerisinde ayni receivere bir kac tane alarm register ediyosun hepsi ayri ayri broadcastlerde olsa direkmen broadcasti unregister etmen yeterli olur. http://stackoverflow.com/questions/15738226/remove-proximity-alert-inside-broadcast-receiver-android Bu linke gir assagida remove etmeyle ilgili bir method verilmiş onu dener misin?