有序广播

有序广播

未设定优先级状态下的,广播接受顺序


有序广播,设定优先级

       优先级,意思是,哪个被设置的优先级越高,它就先获得广播(优先级的范围为 -1000~1000),

       静态接受,设置方法为(在配置xml中的,广播过滤器节点内,加入值):

    

<receiver android:name=".ReceiveOne">
            <intent-filter android:priority="1000">
                 <action android:name="transmitter"></action>
            </intent-filter>
        </receiver>

   动态接受,在Activity,重写的onResume() 方法内设置:

@Override
    protected void onResume() {
        super.onResume();
        //设置优先级
      setProgress(999);
       registerReceiver(receiveTwo,intd);
    }


 发送者

 

package com.example.senbroadcast;

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

public class MainActivity extends AppCompatActivity {

    private EditText editText;

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

        editText = (EditText) findViewById(R.id.et_main_one);

    }
     //点击事件
    public void click(View view){
       //建立意图
        Intent intent=new Intent();
        //设定发送频率  
        intent.setAction("transmitter");
        //设置发送内容
       intent.putExtra("key",editText.getText().toString());
       //发送广播
       sendOrderedBroadcast(intent);
    }

}

 

广播接受者


修改广播、终止广播

   修改,比如说,需要屏蔽某些特殊的字符。 终止广播,当广播内容为一些违法违规,需要禁止的时,就可以通过终止广播,来放置扩散。

  注意事项:

 



接受者,修改或者终止代码示例

package com.example.receiveone;

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

/**
 * Created by Administrator on 2017/7/14.
 */

public class ReceiveOne extends BroadcastReceiver {
    @Override
    public void onReceive(Context context, Intent intent) {
         //接受广播
         if("transmitter".equals(intent.getAction())){
              //屏蔽敏感词汇
            if(intent.getStringExtra("key").contains("草")){
                //终止,有序广播传播
                abortBroadcast();
            }
            if(intent.getStringExtra("key").contains("妹的")){
                //修改广播内容,用来屏蔽
                Bundle bundle=new Bundle();
                bundle.putString("键", intent.getStringExtra("key").replace("妹的","***"));
                setResultExtras(bundle);
                Toast.makeText(context, "1  号  动态接受"+intent.getStringExtra("key"), Toast.LENGTH_SHORT).show();

            }

        }
    }


}


 



评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值