淘宝(阿里百川)手机客户端开发日记第六篇 广播机制详解(二)

上一节中,我们在配置文件中,添加了广播监听器,这节中,我们在代码中添加。

package com.example.broadcast;

import android.content.BroadcastReceiver;
import android.content.Context;
import android.content.Intent;

public class TestReciver2 extends BroadcastReceiver {

    public TestReciver2()
    {
        System.out.println("TestReceiver2");
        
    }
    
    @Override
    public void onReceive(Context context, Intent intent) {
        System.out.println("TestReciver2 --> OnReceiver");
    }

}

配置文件,仅仅设置了

 <receiver android:name="com.example.broadcast.TestReciver2" />

注意,并没有设置过滤器哦!

MainActivity.java代码如下:

package com.example.broadcastdemo;

import android.app.Activity;
import android.content.Intent;
import android.content.IntentFilter;
import android.os.Bundle;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;

import com.example.broadcast.TestReciver2;

public class MainActivity extends Activity implements OnClickListener{

    private Button btnStart = null;
    private Button btnStart2 = null;   //发送广播
    private Button btnStopBroadCast= null; 
    private Button btnRegBroadCast = null; //代码注册广播
    private TestReciver2 textRcv2 = null;
    
    public static final String TAG_BroadCast = "com.example.broadcast";
    
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        
        btnStart = (Button)findViewById(R.id.btnStart);
        btnStart2 = (Button)findViewById(R.id.btnStart2);
        btnStopBroadCast = (Button)findViewById(R.id.btnStopBroadCast);
        btnRegBroadCast = (Button)findViewById(R.id.btnRegBroadCast);
        
        btnStart.setOnClickListener(this);
        btnStart2.setOnClickListener(this);
        btnStopBroadCast.setOnClickListener(this);
        btnRegBroadCast.setOnClickListener(this);
    }

    @Override
    public void onClick(View view) {
        switch(view.getId())
        {
            case R.id.btnStart:
            {
                //采用intent发送数据
                Intent intent = new Intent();
                //只发送给action为ACTION_EDIT的对象
                intent.setAction(Intent.ACTION_EDIT);
                //通过广播方式发送该intent,只有特定action的接收者才能收到该广播信息
                MainActivity.this.sendBroadcast(intent);  
                break;
            }
            case R.id.btnStart2:
            {
                Intent intent = new Intent();
                intent.setAction(TAG_BroadCast);
                MainActivity.this.sendBroadcast(intent);
                System.out.println("Start Broadcast!");
                break;
            }
            case R.id.btnStopBroadCast:
            {
                IntentFilter intent_filter = new IntentFilter();
                intent_filter.addAction(TAG_BroadCast);
                MainActivity.this.unregisterReceiver(textRcv2);
                System.out.println("Stop Broadcast!");
                break;
            }
            case R.id.btnRegBroadCast:
            {
                textRcv2 = new TestReciver2();
                IntentFilter intent_filter = new IntentFilter();
                intent_filter.addAction(TAG_BroadCast);
                MainActivity.this.registerReceiver(textRcv2, intent_filter);
                System.out.println("Reg Broadcast!");
                break;
            }
            
        }
                                           
    }

}

布局很简单,在上一节基础上,增加了两个按钮,如图:

淘宝(阿里百川)手机客户端开发日记第六篇 广播机制详解(二)_第1张图片

首先,我们先点击注册广播按钮, 来注册广播,然后我们点击发送广播2,结果如下:

淘宝(阿里百川)手机客户端开发日记第六篇 广播机制详解(二)_第2张图片

当我们点击停止广播后,

淘宝(阿里百川)手机客户端开发日记第六篇 广播机制详解(二)_第3张图片

好了,广播的内容先告一段落!

 

转载请注明http://www.cnblogs.com/yushengbo,否则将追究版权责任!

 

你可能感兴趣的:(客户端)