2010-06-26 16 views

cevap

37

Yayınlama bildirimdir. :) Söylemek isterseniz, alınan bir yayını temel alarak bir aktivite veya hizmet vb. Başlatın, o zaman bağımsız bir yayın alıcısına ihtiyacınız var ve bunu sizin manifest dosyasına koydunuz. Ancak, etkinliğinizin yayınlara yanıt vermesini istiyorsanız, etkinliğinizde bir yayın alıcısının bir örneğini oluşturup oraya kaydedersiniz.

kullandığım kalıptır: Yani

public class MyActivity extends Activity { 
    private BroadcastReceiver receiver = new BroadcastReceiver() { 
     @Override 
     public void onReceive(...) { 
      ... 
     } 
    }); 

    public void onResume() { 
     super.onResume(); 

     IntentFilter filter = new IntentFilter(); 
     filter.addAction(BROADCAST_ACTION); 

     this.registerReceiver(this.receiver, filter); 
    } 

    public void onPause() { 
     super.onPause(); 

     this.unregisterReceiver(this.receiver); 
    } 
} 

, sınıf (aynı zamanda onCreate yapabileceğini) oluşturulduğunda alıcı örneği bu şekilde. Daha sonra onResume/onPause'da alıcıyı kaydettirme ve kaydını tutma işlemlerini gerçekleştiriyorum. Daha sonra, alıcının yönteminde, etkinliğin yayın aldığında istediğim şekilde tepki vermesi için gerekli olan her şeyi yaparım.

+9

Alıcının aktivitesini tanımlamanız gerekiyor mu? Uygulamanızdaki davranışları istiyorsanız ne olur? – shim

+0

Daha fazla açıklama: 'String BROADCAST_ACTION =" android.net.conn.CONNECTIVITY_CHANGE "; Ayrıca, uygulamanız boyunca bir davranış istersiniz, 'Uygulama' sınıfında kod almayı başaramadınız mı? – Sunshinator

İlgili konular