BroadCast簡單使用

  1. 新建一個類繼承BroadcastReceiver
public class MyBroadCast extends BroadcastReceiver {
    public void onReceive(Context context, Intent intent) {
        String str = intent.getStringExtra("name");     
        Toast.makeText(context, "收到一個廣播:" + str, Toast.LENGTH_SHORT).show();
    }
}

2.需要進行註冊

靜態註冊      在AndroidManifest中註冊
註冊無序的廣播
<receiver android:name=".MyBroad">
            <intent-filter>
                <action android:name="com.tang.zz_work_broastcast"></action>
            </intent-filter>
        </receiver>
註冊有序的廣播,需要添加優先級
 指定優先級屬性,範圍在1000~-1000之間,數值越高越先執行.
<receiver android:name=".MyBroad2">
            <intent-filter android:priority="20">
                <action android:name="com.tang.zz_work_broastcast"></action>
            </intent-filter>
        </receiver> 

<receiver android:name=".MyBroad2">
            <intent-filter android:priority="10">
                <action android:name="com.tang.zz_work_broastcast"></action>
            </intent-filter>
        </receiver>   
動態註冊   在代碼中註冊
public class MainActivity extends Activity {      
    private MyBroadcastReceiver receiver = new MyBroadcastReceiver();     
    protected void onCreate(Bundle savedInstanceState) {  
        super.onCreate(savedInstanceState);  
        setContentView(R.layout.activity_main);  

        IntentFilter filter = new IntentFilter();  
        filter.addAction("android.net.conn.CONNECTIVITY_CHANGE");  
        this.registerReceiver(receiver, filter);  
    }   
    protected void onDestroy() {  
        super.onDestroy();  
        unregisterReceiver(receiver);  
    }  
}    

3 在Activity中發送消息

public class MainActivity extends AppCompatActivity {
    String myBroast = "com.tang.zz_work_broastcast";
    private Button btn1;
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        btn1 = (Button) findViewById(R.id.main_btn1);
        final Intent intent = new Intent(myBroast);
        btn1.setOnClickListener(new View.OnClickListener() {
            public void onClick(View view) {
                intent.putExtra("name", "王五");
                sendBroadcast(intent);
            }
        });
    }
}
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章