• 广播发送和接受者


    http://blog.csdn.net/xiazdong/article/details/7768807

    广播接收者核心代码

    同步广播发送方核心代码:

     

    [java] view plaincopy
     
    1. Intent intent = new Intent();  
    2. intent.setAction("...");  
    3. Context.sendBroadcast(intent);  



    有序广播发送方核心代码:

    [java] view plaincopy
     
    1. Intent intent = new Intent();  
    2. intent.setAction("...");  
    3. Context.sendOrderedBroadcast(intent,null);  



    广播接收者核心代码:

     

    [java] view plaincopy
     
    1. public class Receiver extends BroadcastReceiver{  
    2.     public void onReceive(Context context, Intent intent) {  
    3.         Bundle bundle = intent.getExtras();  
    4.         ...  
    5.     }  
    6. }  

    AndroidManifest.xml

    [html] view plaincopy
     
    1. <application>           
    2.     <receiver android:name=".Receiver">   
    3.         <intent-filter android:priority="1000">   
    4.             <action android:name="com.xiazdong"/>  
    5.         </intent-filter>  
    6.     </receiver>  
    7. </application>          



    三、广播实例

    1.同步广播实例

    场景说明:

     

    (1)广播发送者:

    [java] view plaincopy
     
    1. package com.xiazdong.broadcastsender;  
    2.   
    3. import android.app.Activity;  
    4. import android.content.Intent;  
    5. import android.os.Bundle;  
    6. import android.view.View;  
    7. import android.view.View.OnClickListener;  
    8. import android.widget.Button;  
    9. import android.widget.Toast;  
    10.   
    11. public class MainActivity extends Activity {  
    12.     private Button button;  
    13.     private OnClickListener listener = new OnClickListener(){  
    14.         @Override  
    15.         public void onClick(View v) {  
    16.             Intent intent = new Intent();  
    17.             intent.setAction("com.xiazdong");  
    18.             intent.putExtra("name", "xiazdong");  
    19.             MainActivity.this.sendBroadcast(intent);  
    20.             Toast.makeText(getApplicationContext(), "发送广播成功", Toast.LENGTH_SHORT).show();  
    21.         }  
    22.     };  
    23.     @Override  
    24.     public void onCreate(Bundle savedInstanceState) {  
    25.         super.onCreate(savedInstanceState);  
    26.         setContentView(R.layout.main);  
    27.         button = (Button)this.findViewById(R.id.button);  
    28.         button.setOnClickListener(listener);  
    29.     }  
    30. }  



    (2)广播接收者

    [java] view plaincopy
     
    1. package com.xiazdong.broadcastreceiver1;  
    2.   
    3. import android.content.BroadcastReceiver;  
    4. import android.content.Context;  
    5. import android.content.Intent;  
    6. import android.util.Log;  
    7.   
    8. public class Receiver extends BroadcastReceiver {  
    9.   
    10.     @Override  
    11.     public void onReceive(Context context, Intent intent) {  
    12.         String name = intent.getExtras().getString("name");  
    13.         Log.i("Recevier1", "接收到:"+name);  
    14.     }  
    15.   
    16. }  



    AndroidManifest.xml

    [java] view plaincopy
     
    1. <receiver android:name=".Receiver">  
    2.         <intent-filter>  
    3.              <action android:name="com.xiazdong"/>  
    4.         </intent-filter>  
    5. </receiver>  



    结果:

    2.有序广播实例

    场景说明:

    (1)广播发送者

    [java] view plaincopy
     
    1. package com.xiazdong.broadcastsender;  
    2.   
    3. import android.app.Activity;  
    4. import android.content.Intent;  
    5. import android.os.Bundle;  
    6. import android.view.View;  
    7. import android.view.View.OnClickListener;  
    8. import android.widget.Button;  
    9. import android.widget.Toast;  
    10.   
    11. public class MainActivity extends Activity {  
    12.     private Button button;  
    13.     private OnClickListener listener = new OnClickListener(){  
    14.         @Override  
    15.         public void onClick(View v) {  
    16.             Intent intent = new Intent();  
    17.             intent.setAction("com.xiazdong");  
    18.             intent.putExtra("name", "xiazdong");  
    19.             MainActivity.this.sendOrderedBroadcast(intent, null);   //有序广播发送  
    20.             Toast.makeText(getApplicationContext(), "发送广播成功", Toast.LENGTH_SHORT).show();  
    21.         }  
    22.     };  
    23.     @Override  
    24.     public void onCreate(Bundle savedInstanceState) {  
    25.         super.onCreate(savedInstanceState);  
    26.         setContentView(R.layout.main);  
    27.         button = (Button)this.findViewById(R.id.button);  
    28.         button.setOnClickListener(listener);  
    29.     }  
    30. }  



    (2)广播接收者


    Receiver1

    [java] view plaincopy
     
    1. package com.xiazdong.broadcastreceiver1;  
    2.   
    3. import android.content.BroadcastReceiver;  
    4. import android.content.Context;  
    5. import android.content.Intent;  
    6. import android.util.Log;  
    7.   
    8. public class Receiver extends BroadcastReceiver {  
    9.   
    10.     @Override  
    11.     public void onReceive(Context context, Intent intent) {  
    12.         String name = intent.getExtras().getString("name");  
    13.         Log.i("Recevier1", "接收到:"+name);  
    14.         abortBroadcast();   //Receiver1接收到广播后中断广播  
    15.     }  
    16.   
    17. }  



    AndroidManifest.xml

    [html] view plaincopy
     
      1. <receiver android:name=".Receiver">  
      2.       <intent-filter android:priority="1000"<!-- 设置最高优先级 -->  
      3.          <action android:name="com.xiazdong"/>  
      4.       </intent-filter>  
      5.  </receiver>  
  • 相关阅读:
    Java实现 LeetCode 400 第N个数字
    Java实现 LeetCode 400 第N个数字
    Java实现 LeetCode 399 除法求值
    Java实现 LeetCode 399 除法求值
    Java实现 LeetCode 399 除法求值
    Java实现 LeetCode 398 随机数索引
    Java实现 LeetCode 398 随机数索引
    Java实现 LeetCode 398 随机数索引
    linux中的cd ..和cd -命令有什么区别?
    GCC使用
  • 原文地址:https://www.cnblogs.com/friends-wf/p/4539952.html
Copyright © 2020-2023  润新知