• Android学习笔记之Broadcast Receiver


    可程序间通信

    注册通信,注销通信,发送消息

    package com.jiahemeikang.helloandroid;
    
    import com.jiahemikang.service.EchoService;
    import com.jiahemikang.service.EchoService.EchoServiceBingder;
    import com.jikexuyua.broadcastreceiver.MyBC;
    
    import android.os.Bundle;
    import android.os.IBinder;
    import android.app.Activity;
    import android.content.ComponentName;
    import android.content.Context;
    import android.content.Intent;
    import android.content.IntentFilter;
    import android.content.ServiceConnection;
    import android.view.Menu;
    import android.view.View;
    import android.view.View.OnClickListener;
    import android.widget.Button;
    import android.widget.TextView;
    
    public class MainActivity extends Activity implements OnClickListener,ServiceConnection{
    
        private TextView tvResult ;
        private Intent serviceIntent;
        private Button btnStarAty1; 
        private Button btnStarService; 
        private Button btnStopService; 
        
        private Button btnBingService; 
        private Button btnUnBingService;
        private Button btnGetNum;
        private Button btnbroadcast;
        private Button regbroadcastButton;
        private Button btnunregbroadcastButton;
        public EchoService echoService = null;
        @Override
        protected void onCreate(Bundle savedInstanceState) {
            serviceIntent = new Intent(this,EchoService.class);
            super.onCreate(savedInstanceState);
            setContentView(R.layout.activity_main);
            tvResult = (TextView)findViewById(R.id.tvResult);
            
            btnStarAty1= (Button)findViewById(R.id.btnStartAty1);
            btnStarService= (Button)findViewById(R.id.btnStartService);
            btnStopService= (Button)findViewById(R.id.btnStopService);
            
            btnStarService.setOnClickListener(this);
            btnStopService.setOnClickListener(this);
            
            
            btnBingService= (Button)findViewById(R.id.bingdingservice);
            btnUnBingService= (Button)findViewById(R.id.unbingdingservice);
            btnBingService.setOnClickListener(this);
            btnUnBingService.setOnClickListener(this);
            
            btnGetNum= (Button)findViewById(R.id.btnGetNum);
            btnGetNum.setOnClickListener(this);
            
            btnbroadcast= (Button)findViewById(R.id.btnbroadcast);
            btnbroadcast.setOnClickListener(this);
            
            regbroadcastButton= (Button)findViewById(R.id.btnregbroadcast);
            regbroadcastButton.setOnClickListener(this);
            btnunregbroadcastButton= (Button)findViewById(R.id.btnunregbroadcast);
            btnunregbroadcastButton.setOnClickListener(this);
            
            btnStarAty1.setOnClickListener(new View.OnClickListener(){
                @Override
                public void onClick(View v){
                    
                    Intent i = new Intent(MainActivity.this,Aty1.class);
                    i.putExtra("txt","Hello aty1");
                    startActivity(i);
                    startActivityForResult(i,0);
                }
            });
            
        }
    
        @Override
        protected void onActivityResult(int a,int b ,Intent i){
            
            if (i!=null) {
                String result = i.getStringExtra("result");
                
                tvResult.setText(result);
            }
        }
        @Override
        public boolean onCreateOptionsMenu(Menu menu) {
            // Inflate the menu; this adds items to the action bar if it is present.
            getMenuInflater().inflate(R.menu.main, menu);
            return true;
        }
    
        private  final MyBC myBC = new MyBC();
        @Override
        public void onClick(View v) {
            // TODO Auto-generated method stub
            switch (v.getId()) {
            case R.id.btnStartService:
                startService(serviceIntent);
                break;
            case R.id.btnStopService:
                stopService(serviceIntent);
                break;
            case R.id.bingdingservice:
                bindService(serviceIntent,this,Context.BIND_AUTO_CREATE);
                break;
            case R.id.unbingdingservice:
                unbindService(this);
                echoService =null;
                break;
            case R.id.btnGetNum:
                if (echoService!=null) {
                    System.out.print("当前服务的 数字为"+echoService.getCountNum());
                }
                break;
            case R.id.btnbroadcast:
                Intent i = new Intent(MyBC.ACTION);
                i.putExtra("txt", "消息");
                sendBroadcast(i);
                break;
            case R.id.btnregbroadcast:
                
                registerReceiver(myBC, new IntentFilter(MyBC.ACTION));
                break;
            case R.id.btnunregbroadcast:
                unregisterReceiver(myBC);
                break;
            default:
                break;
            }
        }
    
        
        @Override
        public void onServiceConnected(ComponentName arg0, IBinder binder) {
            System.out.println("onServiceConnected");
            echoService = ((EchoService.EchoServiceBingder)binder).getService();
            
        }
    
        @Override
        public void onServiceDisconnected(ComponentName arg0) {
            // TODO Auto-generated method stub
            
        }
        //onStart
    
    }

    broadcast继承BroadcastReceiver

    package com.jikexuyua.broadcastreceiver;
    
    import android.content.BroadcastReceiver;
    import android.content.Context;
    import android.content.Intent;
    
    public class MyBC extends BroadcastReceiver {
    
        public static  final String     ACTION = "com.jikexuyua.broadcastreceiver.intent.action.MyBC";
        public MyBC() {
            // TODO Auto-generated constructor stub
        }
    
        @Override
        public void onReceive(Context arg0, Intent arg1) {
            // TODO Auto-generated method stub
            System.out.println("OnReceiver data"+arg1.getStringExtra("txt"));
        }
    
    }
  • 相关阅读:
    sql server 数据库创建链接服务器
    RabbitMQ消息队列(十四)-启用SSL安全通讯
    RabbitMQ消息队列(十三)-VirtualHost与权限管理
    RabbitMQ消息队列(十二)-性能测试
    RabbitMQ消息队列(十一)-如何实现高可用
    RabbitMQ消息队列(十)-高可用集群部署实战
    centos7 修改yum源为阿里源
    RabbitMQ消息队列(九)-通过Headers模式分发消息(.Net Core版)
    RabbitMQ消息队列(八)-通过Topic主题模式分发消息(.Net Core版)
    RabbitMQ消息队列(七)-通过fanout模式将消息推送到多个Queue中(.Net Core版)
  • 原文地址:https://www.cnblogs.com/wuhailong/p/5229377.html
Copyright © 2020-2023  润新知