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

  • 相关阅读:
    UVA 562 Dividing coins
    who is in front of me 解题报告
    UVA 111 历史考试
    UVA 1045 最长公共子序列
    HDU 1003 解题报告
    ACM2014-04训练计划
    基于邻接表的新顶点的增加
    4004.六度空间理论
    4003.基于Dijsktra算法的最短路径求解
    4002.基于快排思想的查找
  • 原文地址:https://www.cnblogs.com/gccbuaa/p/7064650.html
Copyright © 2011-2022 走看看