这篇文章主要给小白看的,大神沉默就好 很多小白都知道用广播,可是用的时候始终出现这样那样的问题,这篇博客很好的为大家解释了: 直接上代码:布局我就写了 一个Button 一个TextView
package com.example.demo;
import android.os.Bundle;
import android.app.Activity;
import android.content.BroadcastReceiver;
import android.content.Context;
import android.content.Intent;
import android.content.IntentFilter;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;
import android.widget.TextView;
public class MainActivity extends Activity implements OnClickListener {
private String ACTION = "action";// 广播的标识
private TextView tv;
private Button bt;
private MyBroadCastRecevir recevir;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
iniView();
}
private void iniView() {
recevir = new MyBroadCastRecevir();
tv = (TextView) findViewById(R.id.change);
bt = (Button) findViewById(R.id.button);
bt.setOnClickListener(this);
regs();
}
/**
* 点击事件
*/
@Override
public void onClick(View v) {
switch (v.getId()) {
case R.id.button:
// 发送广播
Intent i = new Intent(ACTION);
// 传值 -->键值对
i.putExtra("value", "接受成功");
// 发送
sendBroadcast(i);
break;
default:
break;
}
}
/**
* 广播的接受
*
* @author Administrator
*
*/
private class MyBroadCastRecevir extends BroadcastReceiver {
@Override
public void onReceive(Context context, Intent intent) {
String s = intent.getStringExtra("value");
tv.setText(s);
}
}
// 销毁广播
@Override
protected void onDestroy() {
// TODO Auto-generated method stub
super.onDestroy();
unregisterReceiver(recevir);
}
// 动态注册
private void regs() {
IntentFilter iFilter = new IntentFilter(ACTION);
registerReceiver(recevir, iFilter);
}
}