SORU
10 Ocak 2012, Salı


LocalBroadcastManager nasıl kullanılır?

herhangi bir/google docs Service broadcast doc açıklandığı gibi LocalBroadcastManager bulun nasıl kullanılacağını söyleyebilir mi?

bunu Google'da araştırdım, ama hiçbir kod ile başlamak için kullanılabilir var mı?

bu belgeler ise DAHİLİ olarak benim uygulama süreci ile yayın yapmak istiyorsam onu kullanmak gerektiğini söylüyorlar ama ben bunun için nereye bakmam gerektiğini biliyorum

yorum/herhangi bir yardım?

Güncelleme: Yayınlar kullanmayı biliyorum ama LocalBroadcastManager projem mevcut almak için nasıl bilmiyorum.

CEVAP
16 Ocak 2012, PAZARTESİ


Bu yine de cevap vereceğim. Birinin ihtiyacı olursa diye.

ReceiverActivity.java

Olay bildirimleri için saatler bir aktivite "custom-event-name" adında.

@Override
public void onCreate(Bundle savedInstanceState) {

  ...

  // Register to receive messages.
  // We are registering an observer (mMessageReceiver) to receive Intents
  // with actions named "custom-event-name".
  LocalBroadcastManager.getInstance(this).registerReceiver(mMessageReceiver,
      new IntentFilter("custom-event-name"));
}

// Our handler for received Intents. This will be called whenever an Intent
// with an action named "custom-event-name" is broadcasted.
private BroadcastReceiver mMessageReceiver = new BroadcastReceiver() {
  @Override
  public void onReceive(Context context, Intent intent) {
    // Get extra data included in the Intent
    String message = intent.getStringExtra("message");
    Log.d("receiver", "Got message: "   message);
  }
};

@Override
protected void onDestroy() {
  // Unregister since the activity is about to be closed.
  LocalBroadcastManager.getInstance(this).unregisterReceiver(mMessageReceiver);
  super.onDestroy();
}

SenderActivity.java

/Yayınları gönderdiği ikinci etkinlik bildirimleri.

@Override
public void onCreate(Bundle savedInstanceState) {

  ...

  // Every time a button is clicked, we want to broadcast a notification.
  findViewById(R.id.button_send).setOnClickListener(new View.OnClickListener() {
    @Override
    public void onClick(View v) {
      sendMessage();
    }
  });
}

// Send an Intent with an action named "custom-event-name". The Intent sent should 
// be received by the ReceiverActivity.
private void sendMessage() {
  Log.d("sender", "Broadcasting message");
  Intent intent = new Intent("custom-event-name");
  // You can also include some extra data.
  intent.putExtra("message", "This is my message!");
  LocalBroadcastManager.getInstance(this).sendBroadcast(intent);
}

Her zaman düğmesi R.id.button_send tıklandığında yukarıdaki kod ile, bir Niyet yayınlanır ve ReceiverActivity mMessageReceiver tarafından alındı.

Hata ayıklama çıkışı, bu gibi görünmelidir:

01-16 10:35:42.413: D/sender(356): Broadcasting message
01-16 10:35:42.421: D/receiver(356): Got message: This is my message! 

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

YORUMLAR

SPONSOR VİDEO

Rastgele Yazarlar

  • HSmasteryoda .

    HSmasteryoda

    22 Ocak 2010
  • MarinaHD2001

    MarinaHD2001

    7 ŞUBAT 2009
  • Peyton

    Peyton

    28 Aralık 2008