本地广播发送接收广播都只能在本应用程序进行调用,不能使用静态注册,使用localBroadcastreceiver进行发送或接收
直接上代码:
package com.example.broadcastreceiver;
import android.app.Activity;
import android.content.BroadcastReceiver;
import android.content.Context;
import android.content.Intent;
import android.content.IntentFilter;
import android.os.Bundle;
import android.support.v4.content.LocalBroadcastManager;
import android.view.View;
import android.widget.Toast;
public class MainActivity extends Activity {
private LocalBroadcastManager local;
private MyBroadcastreceiver receiver;
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
local = LocalBroadcastManager.getInstance(MainActivity.this);
IntentFilter intentFilter = new IntentFilter();
intentFilter.addAction("aaa");
receiver = new MyBroadcastreceiver();
local.registerReceiver(receiver, intentFilter);
}
public void click(View v)
{
Intent intent = new Intent("aaa");
local.sendBroadcast(intent);
}
protected void onDestroy() {
super.onDestroy();
local.unregisterReceiver(receiver);
}
class MyBroadcastreceiver extends BroadcastReceiver
{
public void onReceive(Context arg0, Intent arg1) {
Toast.makeText(arg0, "哈哈", 0).show();
}
}
}