package com.example.administrator.androidtest;
import android.app.Activity;
import android.content.BroadcastReceiver;
import android.content.Context;
import android.content.Intent;
import android.content.IntentFilter;
import android.support.v4.content.LocalBroadcastManager;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.view.View;
import android.widget.TextView;
public class LocalBroadCastMgrActivity extends Activity {
LocalBroadcastManager localBroadcastManager;
MyMsgReceiver myMsgReceiver;
TextView tvReceiver ;
public static String BROADCAST_ACTION = "com.bcoder.test.localbroadcast";
public static String INTENTEXTRA_MYWEBSITE = "mywebsite";
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_local_broad_cast_mgr);
tvReceiver = (TextView) findViewById(R.id.tvReceiver);
}
@Override
protected void onStart() {
super.onStart();
myMsgReceiver = new MyMsgReceiver();
IntentFilter intentFilter = new IntentFilter(BROADCAST_ACTION);
localBroadcastManager = LocalBroadcastManager.getInstance(this);
//注册广播消息接收器
localBroadcastManager.registerReceiver(myMsgReceiver, intentFilter);
}
@Override
protected void onStop() {
//删除已注册的广播
localBroadcastManager.unregisterReceiver(myMsgReceiver);
super.onStop();
}
public void onBtnSendClick(View v){
Intent intent = new Intent(BROADCAST_ACTION);
intent.putExtra(INTENTEXTRA_MYWEBSITE, "http://svn1.bcoder.com");
//在其他Activity或者服务中使用时可以直接使用LocalBroadcastManager.getInstance,不用再定义变量
LocalBroadcastManager.getInstance(this).sendBroadcast(intent);
}
//定义自己的广播接收类
class MyMsgReceiver extends BroadcastReceiver{
@Override
public void onReceive(Context context, Intent intent) {
if(null != intent && null != intent.getStringExtra(INTENTEXTRA_MYWEBSITE)){
tvReceiver.setText(String.format("我的网站: %s", intent.getStringExtra(INTENTEXTRA_MYWEBSITE)));
}
}
}
}