原创作品,允许转载,转载时请务必以超链接形式标明文章
原始出处 、作者信息和本声明。否则将追究法律责任。
http://liangruijun.blog.51cto.com/3061169/655885
- package com.android.broadcast;
- import android.app.Activity;
- import android.content.Intent;
- import android.os.Bundle;
- import android.view.View;
- import android.view.View.OnClickListener;
- import android.widget.Button;
- public class MainActivity extends Activity{
- //定义action常量
- protected static final String ACTION = "com.android.broadcast.RECEIVER_ACTION";
- //定义Button对象
- private Button btnBroadcast;
- @Override
- public void onCreate(Bundle savedInstanceState){
- super.onCreate(savedInstanceState);
- setContentView(R.layout.main);
- btnBroadcast=(Button)findViewById(R.id.btnBroadcast);
- //为按钮设置单击监听器
- btnBroadcast.setOnClickListener(new OnClickListener(){
- @Override
- public void onClick(View v){
- //实例化Intent
- Intent intent=new Intent();
- //设置Intent的action属性
- intent.setAction(ACTION);
- //发出广播
- sendBroadcast(intent);
- }
- });
- }
- }
- package com.android.broadcast;
- import android.content.BroadcastReceiver;
- import android.content.Context;
- import android.content.Intent;
- import android.util.Log;
- public class MyReceiver extends BroadcastReceiver{
- //定义日志标签
- private static final String TAG = "Test";
- @Override
- public void onReceive(Context context, Intent intent){
- //输出日志信息
- Log.i(TAG, "MyReceiver onReceive--->");
- }
- }
- <?xml version="1.0" encoding="utf-8"?>
- <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
- android:orientation="vertical"
- android:layout_width="fill_parent"
- android:layout_height="fill_parent"
- >
- <Button
- android:id="@+id/btnBroadcast"
- android:layout_width="match_parent"
- android:layout_height="wrap_content"
- android:text="发送Broadcast"
- />
- </LinearLayout>
- <?xml version="1.0" encoding="utf-8"?>
- <manifest xmlns:android="http://schemas.android.com/apk/res/android"
- package="com.android.broadcast"
- android:versionCode="1"
- android:versionName="1.0">
- <uses-sdk android:minSdkVersion="10" />
- <application android:icon="@drawable/icon" android:label="@string/app_name">
- <activity android:name=".MainActivity"
- android:label="@string/app_name">
- <intent-filter>
- <action android:name="android.intent.action.MAIN" />
- <category android:name="android.intent.category.LAUNCHER" />
- </intent-filter>
- </activity>
- <receiver android:name="MyReceiver">
- <intent-filter>
- <action android:name="com.android.broadcast.RECEIVER_ACTION"/>
- </intent-filter>
- </receiver>
- </application>
- </manifest>
- package com.android.broadcast;
- import android.app.Activity;
- import android.content.Intent;
- import android.content.IntentFilter;
- import android.os.Bundle;
- import android.view.View;
- import android.view.View.OnClickListener;
- import android.widget.Button;
- public class MainActivity extends Activity{
- //定义Action常量
- protected static final String ACTION = "com.android.broadcast.RECEIVER_ACTION";
- private Button btnBroadcast;
- private Button registerReceiver;
- private Button unregisterReceiver;
- private MyReceiver receiver;
- @Override
- public void onCreate(Bundle savedInstanceState){
- super.onCreate(savedInstanceState);
- setContentView(R.layout.main);
- btnBroadcast=(Button)findViewById(R.id.btnBroadcast);
- //创建事件监听器
- btnBroadcast.setOnClickListener(new OnClickListener(){
- @Override
- public void onClick(View v){
- Intent intent=new Intent();
- intent.setAction(ACTION);
- sendBroadcast(intent);
- }
- });
- registerReceiver=(Button)findViewById(R.id.btnregisterReceiver);
- //创建事件监听器
- registerReceiver.setOnClickListener(new OnClickListener(){
- @Override
- public void onClick(View v){
- receiver=new MyReceiver();
- IntentFilter filter=new IntentFilter();
- filter.addAction(ACTION);
- //动态注册BroadcastReceiver
- registerReceiver(receiver, filter);
- }
- });
- unregisterReceiver=(Button)findViewById(R.id.btnunregisterReceiver);
- //创建事件监听器
- unregisterReceiver.setOnClickListener(new OnClickListener(){
- @Override
- public void onClick(View v){
- //注销BroadcastReceiver
- unregisterReceiver(receiver);
- }
- });
- }
- }
- package com.android.broadcast;
- import android.content.BroadcastReceiver;
- import android.content.Context;
- import android.content.Intent;
- import android.util.Log;
- public class MyReceiver extends BroadcastReceiver{
- //定义日志标签
- private static final String TAG = "Test";
- @Override
- public void onReceive(Context context, Intent intent){
- //输出日志信息
- Log.i(TAG, "MyReceiver onReceive--->");
- }
- }
- <?xml version="1.0" encoding="utf-8"?>
- <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
- android:orientation="vertical"
- android:layout_width="fill_parent"
- android:layout_height="fill_parent"
- >
- <Button
- android:id="@+id/btnBroadcast"
- android:layout_width="match_parent"
- android:layout_height="wrap_content"
- android:text="发送广播"
- />
- <Button
- android:id="@+id/btnregisterReceiver"
- android:layout_width="match_parent"
- android:layout_height="wrap_content"
- android:text="注册广播接收器"
- />
- <Button
- android:id="@+id/btnunregisterReceiver"
- android:layout_width="match_parent"
- android:layout_height="wrap_content"
- android:text="注销广播接听器"
- />
- </LinearLayout>