自定義廣播(BroadcastReceiver)事件 --Android開發
阿新 • • 發佈:2018-06-22
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開發