Skip to content

Instantly share code, notes, and snippets.

@pokk
Last active April 5, 2017 02:39
Show Gist options
  • Save pokk/4f79e447bbb8ec07bd94d6328c9984f3 to your computer and use it in GitHub Desktop.
Save pokk/4f79e447bbb8ec07bd94d6328c9984f3 to your computer and use it in GitHub Desktop.
Implement the broadcast & receiver and local of both.

[TOC]

Introduction

  1. Broadcast & Receiver
  2. LocalBroadcast & LocalReceiver

Broadcast & Receiver

BroadcastReceiver receiver = new Receiver();

// Register the receiver.
@override
protected onResume()
{
    super.onResume();
    IntentFilter ifilter = new IntentFilter().addAction("app.your.receiver.name");
    registerReceiver(receiver, ifilter);
}

// Don't forget unregistering the receiver.
@override
protected onPause()
{
    super.onPasue();
    unregisterReceiver(receiverDetect);
}
  • Static register: By through the AndroidManifest.xml.
<receiver
    android:name="Your_Receiver"
    android:exported="false" >
    <intent-filter>
          <action android:name="app.your.receiver.name" />
    </intent-filter>
</receiver>

LocalBroadcast & LocalReceiver

public class LocalActivity extends Activity
{
private LocalBroadcastManager localBroadcastManager;
private LocalReceiver localReceiver;
@Override
protected void onCreate(Bundle savedInstanceState)
{
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
this.localBroadcastManager = LocalBroadcastManager.getInstance(this);
}
protected void broadcast()
{
// Notice!! This is for local broadcast.
Intent intent = new Intent("app.your.receiver.name");
intent.putExtra("msg", "Hello world!");
this.localBroadcastManager.sendBroadcast(intent);
}
protected void register()
{
// Register local receiver.
IntentFilter localIntentTilter = new IntentFilter("app.your.receiver.name");
this.localReceiver = new LocalReceiver();
this.localBroadcastManager.registerReceiver(localReceiver, localIntentTilter);
}
protected void unregister()
{
// Unregister local receiver.
this.localBroadcastManager.unregisterReceiver(localReceiver);
}
}
public class MainActivity extends Activity
{
@Override
protected void onCreate(Bundle savedInstanceState)
{
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
this.broadcast();
}
protected void broadcast()
{
// Notice!! This is for global broadcast.
Intent intent = new Intent().setAction("app.your.receiver.name");
intent.putExtra("msg", "Hello world!");
context.sendBroadcast(intent);
}
}
public class Receiver extends BroadcastReceiver
{
@Override
public void onReceive(Context context, Intent intent)
{
String msg = String.valueOf(intent.getExtra().get("msg"));
Log.v("BroadcastReveiver", msg);
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment