1. 程式人生 > >自定義廣播(BroadcastReceiver)事件 --Android開發

自定義廣播(BroadcastReceiver)事件 --Android開發

ppc andro xtend 類型 class get receive cli time

本例演示自定義廣播事件。我們需要做的是,在主活動中寫發送廣播的代碼,然後在接收廣播的類中寫接收廣播的代碼。

1、主活動中點擊按鈕後發送廣播

技術分享圖片

MainActivity.java:

public class MainActivity extends AppCompatActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);

}
public void onClick(View view) {
Intent intent = new Intent();
intent.setAction("com.thanlon.diyAction");//自定義廣播的類型
//        sendBroadcast(intent);//直接發送廣播

intent.putExtra("info_key", "廣播傳遞的參數");//發送帶參數的廣播;
sendBroadcast(intent, "com.thanlon.permission.name");//需要帶指定權限的接受者才能接收到廣播
    }
}

2、寫一個接收廣播的類。

MyBroadcastReceiver.java:

public class MyBroadcastReceiver extends BroadcastReceiver {
@Override
public void onReceive(Context context, Intent intent) {
Log.d("thanlon", "收到自定義廣播");
String info = intent.getStringExtra("info_key");//接受廣播帶的參數
Log.d("thanlon", info);

}
}

3、在AndroidManifest.xml中配置自定義廣播類型和自定義接收者的權限(註冊廣播)。

AndroidManifest.xml:

<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="thonlon.example.cn.diybroadcastreceiverdemo">
<!--自定義接收者權限-->
<permission android:name="com.thanlon.permission.name" />
<!--配置接收者權限-->
<uses-permission android:name="com.thanlon.permission.name" />
<application
android:allowBackup="true"
android:icon="@mipmap/ic_launcher"
android:label="@string/app_name"
android:roundIcon="@mipmap/ic_launcher_round"
android:supportsRtl="true"
android:theme="@style/AppTheme">
<activity android:name=".MainActivity">
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
   <!--註冊廣播,本例自定義廣播類型-->
        <receiver android:name=".MyBroadcastReceiver">
<intent-filter>
<action android:name="com.thanlon.diyAction" />
</intent-filter>
</receiver>
</application>
</manifest>

4、在logcat下查看廣播接受者是否接收到廣播。

技術分享圖片

很明顯正確接收到廣播並且接收到了 廣播傳遞的參數。

自定義廣播(BroadcastReceiver)事件 --Android開發