您的位置:首页 > 其它

BroadcastReceiver(广播接收者)

2015-04-29 19:19 176 查看
MainActivity.java

public class MainActivity extends Activity {

@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
Button button1 = (Button)findViewById(R.id.button1);
button1.setOnClickListener(new OnClickListener() {

@Override
public void onClick(View v) {
// TODO Auto-generated method stub
Intent intent = new Intent("action_name");
intent.putExtra("name", "我是名字");
sendBroadcast(intent);
}
});
}

}


布局文件:

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent" >

<Button
android:id="@+id/button1"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:text="发送广播" />

</RelativeLayout>


Receiver.java

public class Receiver extends BroadcastReceiver{

@Override
public void onReceive(Context context, Intent intent) {
// TODO Auto-generated method stub
Toast.makeText(context, intent.getStringExtra("name"), Toast.LENGTH_SHORT).show();
}

}


(注册广播接受者)XML注册(清单文件)(静态注册也叫全局注册):

<receiver
android:name="com.lyh.broadcastdemo.Receiver">
<intent-filter>
<action android:name="action_name"/>
</intent-filter>
</receiver>


(注册广播接受者)Java注册(动态态注册也叫局布注册):

IntentFilter filter = new IntentFilter("action_name");
Receiver receiver = new Receiver();             MainActivity.this.registerReceiver(receiver, filter);


在需要的地方调用Context.registerReceiver()注册
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: