zoukankan      html  css  js  c++  java
  • Ordered Broadcast有序广播

    sendBroadcast()发生无序广播

    sendOrderedBroadcast()发送有序广播

    activity_main.xml

    <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
        xmlns:tools="http://schemas.android.com/tools"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:orientation="vertical" >
    
        <Button
            android:id="@+id/send"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="发生广播" />
    
    </LinearLayout>


    MainActivity

    package com.example.orderbroadcast;
    
    import android.app.Activity;
    import android.app.ActionBar;
    import android.app.Fragment;
    import android.content.Intent;
    import android.os.Bundle;
    import android.view.LayoutInflater;
    import android.view.Menu;
    import android.view.MenuItem;
    import android.view.View;
    import android.view.ViewGroup;
    import android.widget.Button;
    import android.os.Build;
    
    public class MainActivity extends Activity {
    
    	private Button send;
    	@Override
    	protected void onCreate(Bundle savedInstanceState) {
    		super.onCreate(savedInstanceState);
    		setContentView(R.layout.activity_main);
    
    		send=(Button)this.findViewById(R.id.send);
    		send.setOnClickListener(new View.OnClickListener() {
    			
    			@Override
    			public void onClick(View arg0) {
    				// TODO Auto-generated method stub
    				Intent intent=new Intent();
    				intent.setAction("dashu.orderedBroadcast");
    				intent.putExtra("msg", "发送广播");
    				sendOrderedBroadcast(intent, null);
    			}
    		});
    	}
    }
    


    MyReceiver1

    package com.example.orderbroadcast;
    
    import android.content.BroadcastReceiver;
    import android.content.Context;
    import android.content.Intent;
    import android.os.Bundle;
    import android.widget.Toast;
    
    public class MyReceiver1 extends BroadcastReceiver {
    
    	@Override
    	public void onReceive(Context context, Intent intent) {
    		// TODO Auto-generated method stub
    		Toast.makeText(context, "消息内容是"+intent.getStringExtra("msg"), Toast.LENGTH_LONG);
    		//创建Bundle对象,并存入数据
    		Bundle bundle=new Bundle();
    		bundle.putString("frist", "第一个BroadcastReceiver消息...");
    		//把bundle对象放到广播中传输
    		setResultExtras(bundle);
    		//取消Broadcast的继续传播
    		//abortBroadcast();
    	}
    
    }
    


    MyReceiver

    package com.example.orderbroadcast;
    
    import android.content.BroadcastReceiver;
    import android.content.Context;
    import android.content.Intent;
    import android.os.Bundle;
    import android.widget.Toast;
    
    public class MyReceiver extends BroadcastReceiver {
    
    	@Override
    	public void onReceive(Context context, Intent intent) {
    		// TODO Auto-generated method stub
    		Bundle bundle = getResultExtras(true);
    		String frist = bundle.getString("frist");
    		Toast.makeText(context, "第一个Broadcast存入的消息为:" + frist,
    				Toast.LENGTH_LONG).show();
    	}
    
    }
    


     

    Mainfest.xml

     <receiver android:name="com.example.orderbroadcast.MyReceiver" >
                <intent-filter android:priority="10" >
                    <action android:name="dashu.orderedBroadcast" />
                </intent-filter>
            </receiver>
            <receiver android:name="com.example.orderbroadcast.MyReceiver1" >
                <intent-filter android:priority="20" >
                    <action android:name="dashu.orderedBroadcast" />
                </intent-filter>
            </receiver>
        </application>

    android:priority设置接收广播优先级,取值范围-1000 到1000

  • 相关阅读:
    Python网络爬虫之Scrapy框架(CrawlSpider)
    在爬虫中使用单线程异步协程,包含单任务和多任务,以及数据解析使用回调函数
    使用线程池来进行发送爬取请求和存储数据
    在linux和windows中使用selenium
    以太坊私有节点搭建
    以太坊简介
    区块链历史来源
    通过go-ethereum源码看如何管理项目
    react-router简介
    js变量的解构赋值
  • 原文地址:https://www.cnblogs.com/gccbuaa/p/7064650.html
Copyright © 2011-2022 走看看