zoukankan      html  css  js  c++  java
  • 自定义广播

    一.自定义标准广播

    1.新建MyBroadcastReceiver
    public class MyBroadcastReceiver extends BroadcastReceiver {
    @Override
    public void onReceive(Context context, Intent intent) {
    Toast.makeText(context, "收到一条广播", Toast.LENGTH_LONG).show();
    }
    }

    2.发送广播
    public class MainActivity extends Activity {

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

    protected void myClick(View view){
    if( view.getId() == R.id.btn ){
    Intent intent = new Intent("com.example.guo.broadcast3.SEND_BROADCAST3");
    sendBroadcast(intent);
    }
    }
    }


    3.AndroidManifest.xml配置
    <receiver android:name=".MyBroadcastReceiver">
    <intent-filter>
    <action android:name="com.example.guo.broadcast3.SEND_BROADCAST3" />
    </intent-filter>
    </receiver>

    二.自定义有序广播

    1.广播可以被本应用接收到,也可以被别的应用接收到,我们新建一个Broadcast4应用

    2.新建AnotherBroadcastReceiver
    public class AnotherBroadcastReceiver extends BroadcastReceiver {
    @Override
    public void onReceive(Context context, Intent intent) {
    Toast.makeText(context, "收到一条广播,来自broadcast3", Toast.LENGTH_LONG).show();
    }
    }

    3.配置AndroidManifest.xml,让它接收上一个应用broadcast3的广播
    <receiver android:name=".AnotherBroadcastReceiver">
    <intent-filter>
    <action android:name="com.example.guo.broadcast3.SEND_BROADCAST3" />
    </intent-filter>
    </receiver>
    4.运行broadcast3,点击发送广播后,broadcast3和broadcast4都会收到广播消息

    5.更改broadcast3的发送为有序发送
    sendOrderedBroadcast(intent, null);

    6.修改broadcast3中的AndroidManifest.xml,提高接收优先级
    <receiver android:name=".MyBroadcastReceiver">
    <intent-filter android:priority="100">
    <action android:name="com.example.guo.broadcast3.SEND_BROADCAST3" />
    </intent-filter>
    </receiver>

    增加一个优先级字段android:priority="100"

    7.运行broadcast3,点击发送广播后,broadcast3和broadcast4都会收到广播消息,但是广播是先发送给优先级高的broadcast3,后发送给broadcast4

    8.我们在broadcast3收到广播消息后,阻断继续发送.
    Toast.makeText(context, "收到一条广播", Toast.LENGTH_LONG).show();
    abortBroadcast();

    9.再次运行,发现只有broadcast3收到消息,broadcast4没有收到消息

  • 相关阅读:
    Maven搭建Spring+Struts2+Hibernate项目详解
    Missing artifact com.sun:tools:jar:1.5.0
    post和get的区别?
    $(document).ready(function(){}),$().ready(function(){})和$(function(){})三个有区别么
    Spring配置dataSource的三种方式 数据库连接池
    关于sqlSessionTemplate
    sql中between and 用法
    用Java自定义一个定时器
    Tomcat unable to start within 45 seconds.
    如果 date_field = TRUNC(date_field) 就说明时分秒为0(也就是不包含),否则就包含时分秒
  • 原文地址:https://www.cnblogs.com/itfenqing/p/6734862.html
Copyright © 2011-2022 走看看