广播机制BroadcastReceiver 手动和自动注册

来源:互联网 发布:苏州淘宝运营 编辑:程序博客网 时间:2024/06/10 16:18
package com.example.bctest;

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

public class BoardCastRe extends Activity {
    public static final String SMS_RECEIVED_ACTION =
            "android.provider.Telephony.SMS_RECEIVED";
    private Button btnReg,btnUnReg;
    private boardMessage bm;
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_board_cast_re);
        
        btnReg = (Button)findViewById(R.id.btnReg);
        btnReg.setOnClickListener(new AutoRegReceive());
        
        btnUnReg = (Button)findViewById(R.id.btnUnReg);
        btnUnReg.setOnClickListener(new UnRegReceive());
    }

    class RegReceive implements OnClickListener{

        @Override
        public void onClick(View v) {
            // TODO Auto-generated method stub
            System.out.println("reg");
            bm = new boardMessage();
            
            IntentFilter intFi = new IntentFilter();
            intFi.addAction(SMS_RECEIVED_ACTION);
            
            BoardCastRe.this.registerReceiver(bm, intFi);
            
        }
        
    }
    
    class AutoRegReceive implements OnClickListener{

        @Override
        public void onClick(View v) {
            // TODO Auto-generated method stub
            bm = new boardMessage();
            
            IntentFilter intFi = new IntentFilter();
            intFi.addAction("broadcast");
            
            BoardCastRe.this.registerReceiver(bm, intFi);
            
            send();
            
        }
        
    }
    
    private void send(){
        Intent it = new Intent();
        it.setAction("broadcast");
        BoardCastRe.this.sendBroadcast(it);
    }
    
    class UnRegReceive implements OnClickListener{

        @Override
        public void onClick(View v) {
            // TODO Auto-generated method stub
            BoardCastRe.this.unregisterReceiver(bm);
        }
        
    }
    @Override
    public boolean onCreateOptionsMenu(Menu menu) {
        // Inflate the menu; this adds items to the action bar if it is present.
        getMenuInflater().inflate(R.menu.activity_board_cast_re, menu);
        return true;
    }

}

原创粉丝点击