BroadcastReceiver

来源:互联网 发布:什么是数据库设计 编辑:程序博客网 时间:2024/05/22 02:27
public class MainActivity extends AppCompatActivity {    private EditText editText;    private MyReceiver receiver;    @Override    protected void onCreate(Bundle savedInstanceState) {        super.onCreate(savedInstanceState);        setContentView(R.layout.activity_main);        editText = (EditText) findViewById(R.id.editText);        receiver = new MyReceiver();        registerReceiver(receiver, new IntentFilter(MyReceiver.ACTION));        findViewById(R.id.button).setOnClickListener(new View.OnClickListener() {            @Override            public void onClick(View v) {                Intent intent = new Intent(MyReceiver.ACTION);                intent.putExtra("name", editText.getText().toString());                sendBroadcast(intent);            }        });        findViewById(R.id.button2).setOnClickListener(new View.OnClickListener() {            @Override            public void onClick(View v) {                unregisterReceiver();            }        });    }    private void unregisterReceiver() {        if (receiver != null) {            unregisterReceiver(receiver);            receiver = null;        }    }    @Override    protected void onDestroy() {        super.onDestroy();        unregisterReceiver();    }}
public class MyReceiver extends BroadcastReceiver {    public static final String ACTION = "com.example.zmx.broadcastreceiver.intent.action.MyReceiver";    public MyReceiver() {    }    @Override    public void onReceive(Context context, Intent intent) {        // TODO: This method is called when the BroadcastReceiver is receiving        // an Intent broadcast.        System.out.println(intent.getStringExtra("name"));    }}
Broadcast优先级
public class MainActivity extends AppCompatActivity {    @Override    protected void onCreate(Bundle savedInstanceState) {        super.onCreate(savedInstanceState);        setContentView(R.layout.activity_main);        findViewById(R.id.button).setOnClickListener(new View.OnClickListener() {            @Override            public void onClick(View v) {                Intent intent = new Intent(MyReceiver.ACTION);                sendOrderedBroadcast(intent, null);            }        });    }}

public class MyReceiver extends BroadcastReceiver {    public static final String ACTION = "com.example.zmx.broadcastreceiver.intent.action.MyReceiver";    public MyReceiver() {    }    @Override    public void onReceive(Context context, Intent intent) {        // TODO: This method is called when the BroadcastReceiver is receiving        // an Intent broadcast.        System.out.println("MyReceiver");    }}

public class MyReceiver2 extends BroadcastReceiver {    public static final String ACTION = "com.example.zmx.broadcastreceiver.intent.action.MyReceiver";    public MyReceiver2() {    }    @Override    public void onReceive(Context context, Intent intent) {        // TODO: This method is called when the BroadcastReceiver is receiving        // an Intent broadcast.        System.out.println("MyReceiver2");    //    abortBroadcast();    }}

<receiver    android:name=".MyReceiver"    android:enabled="true"    android:exported="true" >    <intent-filter android:priority="8">        <action android:name="com.example.zmx.broadcastreceiver.intent.action.MyReceiver" />    </intent-filter></receiver><receiver    android:name=".MyReceiver2"    android:enabled="true"    android:exported="true">    <intent-filter android:priority="9">        <action android:name="com.example.zmx.broadcastreceiver.intent.action.MyReceiver" />    </intent-filter></receiver>
0 0
原创粉丝点击