Android 發送自定義廣播(標准和本地)


1、首先自定義一個廣播接收器:MyBroadcastReceiver

package example.com.mybroadcastreceiver;

import android.content.BroadcastReceiver;
import android.content.Context;
import android.content.Intent;
import android.widget.Toast;

public class MyBroadcastReceiver extends BroadcastReceiver {

    @Override
    public void onReceive(Context context, Intent intent) {
        Toast.makeText(context,"received in MyBroadcastReceiver",Toast.LENGTH_SHORT).show();
    }
}

2、修改AndroidManifest中的代碼:

        <receiver
            android:name=".MyBroadcastReceiver"
            android:enabled="true"
            android:exported="true">
            <intent-filter>
                <action android:name="example.com.mybroadcastreceiver.MY_BROADCAST"/>
            </intent-filter>
        </receiver>

3、為主活動添加一個按鈕:

    <Button
        android:id="@+id/button"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:text="Send Broadcast"/>

4、為按鈕綁定點擊事件:

package example.com.mybroadcastreceiver;

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

public class MainActivity extends AppCompatActivity {

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        Button button = (Button) findViewById(R.id.button);
        button.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                //構建一個Intent對象,並把要發送的廣播值傳進去。
                Intent intent = new Intent("example.com.mybroadcastreceiver.MY_BROADCAST");
                //調用Context的sendBroadcast()方法,將廣播發送出去。所有監聽這條廣播的接收器就都會接收到這條廣播。
                sendBroadcast(intent);
            }
        });
    }
}

 


5、發送有序廣播:新建一個項目,自定義一個廣播接收器,用於接收上面的廣播。

package example.com.broadcasttest02;

import android.content.BroadcastReceiver;
import android.content.Context;
import android.content.Intent;
import android.widget.Toast;

public class AnotherBroadcastReceiver extends BroadcastReceiver {

    @Override
    public void onReceive(Context context, Intent intent) {
        Toast.makeText(context,"received in AnotherBroadcastReceiver",Toast.LENGTH_SHORT).show();
    }
}

6、不要忘記在AndroidManifest中注冊:

        <receiver
            android:name=".AnotherBroadcastReceiver"
            android:enabled="true"
            android:exported="true">
            <intent-filter>
                <action android:name="example.com.broadcasttest02.MY_BROADCAST"/>
            </intent-filter>
        </receiver>

7、

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM