2011-02-24 20 views
6

Bir uygulama geliştirirken sıkışmış durumdayım çünkü bir BroadcastReceiver tetiklendiğinde etkinliğimin bir yöntemini çağırmam gerekiyor. BroadcastReceiver'ın bir ağ bağlantısının ne zaman çalıştığını algılamasını ve daha önce yazmış olduğum faaliyetlerimin bir yöntemini çağırmasını istiyorum.BroadcastReceiver'dan bir etkinlik yöntemi çağırın. Mümkün mü?

Araştırıyordum ve daha önce daha çok insanın bunu sorduğunu, ancak bunun nasıl yapılacağı konusunda hiç kimsenin bir cevabı olmadığını gördüm.

Belki de Android'in API'sinin buna izin vermediğini düşünüyorum. Eğer BroadcastReceiver'den aktivitemin bir yöntemini çağırmak mümkün değilse, bunu yapmak için başka yollar var mı?

Teşekkürler.

+0

Sizin aktivitenizdeki yöntem ne yapar? –

+0

Bir İşlem değişkeninin (Aktiviteye aittir) null olarak ayarlanmadığını kontrol eder (işlem başlatılmıştır) ve bu işlemi yapan bir kök kabukta bir komut yürütür. – Jimix

cevap

9

Böyle bir şey deneyin .. Sende

aktivite kod yazma

BroadcastReceiver connectionReceiver = new BroadcastReceiver() { 
     @Override 
     public void onReceive(Context context, Intent intent) { 
      myActivityMethod();// Here you call method 
     } 
    }; 

    registerReceiver(connectionReceiver, new IntentFilter("com.test.NET_CONNECTION")); 

Ve Servis yazma içinde

Intent intent = new Intent("com.test.NET_CONNECTION"); 
     sendBroadcast(intent); 

karışıklık beni ben çözmeye çalışacağım haber verecek olursa ..

+0

Bir hizmet kullanmamama rağmen (yalnızca bir etkinlik), bu aktivitede kodu kullandım ve hizmet kodunu kodladım. Güzel çalıştı. Yardımın için çok teşekkürler! Bu konu bir kaç gün beni deli ediyordu. – Jimix