BrodacastReceiver的靜態註冊

今天給大家分享安卓四大組件之一的BrodacastReceiver的靜態註冊方法,主要在清單文件下操作。下面是詳細代碼介紹部分,希望給剛入門的菜鳥帶來幫助:
MainActivity部分
`package com.example.administrator.broadcastreceiver;

import android.content.Intent;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.view.View;

public class MainActivity extends AppCompatActivity {

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);
}
//發送廣播信息
public void send(View view) {
    Intent intent = new Intent();
    intent.setAction("receiver");
    intent.putExtra("key","我是Activity");
    //發送廣播的方法
    sendBroadcast(intent);
}

}`
FirstReceiver部分

public class FirstReceiver extends BroadcastReceiver{
    @Override
    public void onReceive(Context context, Intent intent) {
        String action = intent.getAction();
        if ("receiver".equals(action)){
            String value = intent.getStringExtra("key");
            Toast.makeText(context,"1--->收到廣播啦-->"+value,Toast.LENGTH_SHORT).show();
        }
    }
}

SecondReceiver

public class SecondReceiver extends BroadcastReceiver {
    @Override
    public void onReceive(Context context, Intent intent) {
        String action = intent.getAction();
        if ("receiver".equals(action)) {
            String value = intent.getStringExtra("key");
            Toast.makeText(context, "2--->收到廣播了-->"+value, Toast.LENGTH_SHORT).show();
        }
    }
}

佈局部分

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:paddingBottom="@dimen/activity_vertical_margin"
    android:paddingLeft="@dimen/activity_horizontal_margin"
    android:paddingRight="@dimen/activity_horizontal_margin"
    android:paddingTop="@dimen/activity_vertical_margin"
    tools:context="com.example.administrator.broadcastreceiver.MainActivity">

    <Button
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:onClick="send"
        android:text="大喇叭廣播時間到了" />
</RelativeLayout>

靜態註冊重點

<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
    package="com.example.administrator.broadcastreceiver">

    <application
        android:allowBackup="true"
        android:icon="@mipmap/ic_launcher"
        android:label="@string/app_name"
        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>
        <!--靜態註冊.-->
        <!--默認情況下,收到廣播的順序和註冊的順序有關係-->
        <!--priority:優先級.值越大,優先級越高.值的範圍:0-9999-->
        <receiver android:name=".FirstReceiver">
            <intent-filter android:priority="100">
                <action android:name="receiver"/>
            </intent-filter>
        </receiver>

        <receiver android:name=".SecondReceiver">
            <intent-filter android:priority="200">
                <action android:name="receiver"/>
            </intent-filter>
        </receiver>
        <!--這部分很重要,寫錯了將會使得程序崩潰不能運行-->

    </application>

</manifest>
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章