自定义广播事件&发送自定义的广播&广播接受者的优先级

A应用

package visizen.com.a;

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 {

    private Button btn;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);

        btn = (Button) this.findViewById(R.id.button);

    }


    public void broadCast(View view) {
        Intent intent = new Intent();
        intent.setAction("a");
        //无序
        //sendBroadcast(intent);

        //有序
       //sendOrderedBroadcast(intent,null);

        //最终都会有一个接收者接收消息
        sendOrderedBroadcast(intent,null,new FinalReceiver(),null,0,null,null);
    }
}

B应用

AndroidManifest.xml

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

    <application
        android:allowBackup="true"
        android:icon="@mipmap/ic_launcher"
        android:label="@string/app_name"
        android:supportsRtl="true"
        android:theme="@style/AppTheme" >
        <activity
            android:name=".FullscreenActivity"
            android:configChanges="orientation|keyboardHidden|screenSize"
            android:label="@string/app_name"
            android:theme="@style/FullscreenTheme" >
            <intent-filter>
                <action android:name="android.intent.action.MAIN" />

                <category android:name="android.intent.category.LAUNCHER" />
            </intent-filter>
        </activity>

        <receiver android:name=".Receiver1">
            <intent-filter android:priority="1000">
                <action android:name="a"></action>
            </intent-filter>
        </receiver>
        <receiver android:name=".Receiver2">
            <intent-filter android:priority="500">
                <action android:name="a"></action>
            </intent-filter>
        </receiver>

        <receiver android:name=".Receiver3">
            <intent-filter android:priority="100">
                <action android:name="a"></action>
            </intent-filter>
        </receiver>
    </application>

</manifest>

Receiver1

package visizen.com.b;

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

/**
 * Created by Administrator on 2015/12/14 0014.
 */
public class Receiver1 extends BroadcastReceiver {
    @Override
    public void onReceive(Context context, Intent intent) {
        Toast.makeText(context,"我收到消息了!",Toast.LENGTH_SHORT).show();
        System.out.println("我收到消息了!---1");
        abortBroadcast();
    }
}

Receiver2

package visizen.com.b;

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

/**
 * Created by Administrator on 2015/12/14 0014.
 */
public class Receiver2 extends BroadcastReceiver {
    @Override
    public void onReceive(Context context, Intent intent) {
        Toast.makeText(context,"我收到消息了!",Toast.LENGTH_SHORT).show();
        System.out.println("我收到消息了!-----2");
    }
}

Receiver3

package visizen.com.b;

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

/**
 * Created by Administrator on 2015/12/14 0014.
 */
public class Receiver3 extends BroadcastReceiver {
    @Override
    public void onReceive(Context context, Intent intent) {
        Toast.makeText(context,"我收到消息了!",Toast.LENGTH_SHORT).show();
        System.out.println("我收到消息了!-----3");
    }
}

 

posted on 2015-12-14 15:33  jayhtt  阅读(130)  评论(0)    收藏  举报