1 package com.example.mars_gbjs;
2
3 import android.app.Activity;
4 import android.content.Intent;
5 import android.content.IntentFilter;
6 import android.os.Bundle;
7 import android.view.Menu;
8 import android.view.MenuItem;
9 import android.view.View;
10 import android.view.View.OnClickListener;
11 import android.widget.Button;
12
13 public class MainActivity extends Activity {
14
15 private TestBroadcast test;
16 @Override
17 protected void onCreate(Bundle savedInstanceState) {
18 super.onCreate(savedInstanceState);
19 setContentView(R.layout.activity_main);
20 Button but=(Button) findViewById(R.id.but);
21 Button but2=(Button) findViewById(R.id.but2);
22 Button but3=(Button) findViewById(R.id.but3);
23 but.setOnClickListener(new OnClickListener() {
24 @Override
25 public void onClick(View v) {
26 test = new TestBroadcast();//创立广播接收对象
27 IntentFilter filter=new IntentFilter();//创立过滤器
28 filter.addAction(Intent.ACTION_AIRPLANE_MODE_CHANGED);//添加过滤的事件(相当于监听器)监听手机的飞行模式
29 registerReceiver(test, filter);//注册广播
30
31 }
32 });
33 but2.setOnClickListener(new OnClickListener() {
34 @Override
35 public void onClick(View v) {
36 unregisterReceiver(test);//取消注册
37 }
38 });
39 but3.setOnClickListener(new OnClickListener() {
40 @Override
41 public void onClick(View v) {
42 Intent intent=new Intent("my_broadcast");
43 sendBroadcast(intent);//自定义广播
44 }
45 });
46 }
47 }
1 package com.example.mars_gbjs;
2
3 import android.content.BroadcastReceiver;
4 import android.content.Context;
5 import android.content.Intent;
6 import android.os.Bundle;
7 import android.util.Log;
8 import android.widget.Toast;
9
10 public class TestBroadcast extends BroadcastReceiver{
11
12 @Override
13 public void onReceive(Context context, Intent intent) {//收到自定义广播调用此函数
14 Log.i("test", "收到广播");
15 Toast.makeText(context, "收到广播", 0).show();
16 }
17
18 }
1 <?xml version="1.0" encoding="utf-8"?>
2 <manifest xmlns:android="http://schemas.android.com/apk/res/android"
3 package="com.example.mars_gbjs"
4 android:versionCode="1"
5 android:versionName="1.0" >
6
7 <uses-sdk
8 android:minSdkVersion="15"
9 android:targetSdkVersion="15" />
10
11 <application
12 android:allowBackup="true"
13 android:icon="@drawable/ic_launcher"
14 android:label="@string/app_name"
15 android:theme="@style/AppTheme" >
16 <activity
17 android:name=".MainActivity"
18 android:label="@string/app_name" >
19 <intent-filter>
20 <action android:name="android.intent.action.MAIN" />
21
22 <category android:name="android.intent.category.LAUNCHER" />
23 </intent-filter>
24 </activity>
25 <receiver android:name=".TestBroadcast">
26 <intent-filter >
27 <action android:name="my_broadcast"/>//注册自定义广播
28 </intent-filter>
29 </receiver>
30 </application>
31
32 </manifest>