可程序间通信

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

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;@Overrideprotected 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(){@Overridepublic void onClick(View v){Intent i = new Intent(MainActivity.this,Aty1.class);i.putExtra("txt","Hello aty1");startActivity(i);startActivityForResult(i,0);}});}@Overrideprotected void onActivityResult(int a,int b ,Intent i){if (i!=null) {String result = i.getStringExtra("result");tvResult.setText(result);}}@Overridepublic 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();@Overridepublic void onClick(View v) {// TODO Auto-generated method stubswitch (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;}}@Overridepublic void onServiceConnected(ComponentName arg0, IBinder binder) {System.out.println("onServiceConnected");echoService = ((EchoService.EchoServiceBingder)binder).getService();}@Overridepublic 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
    }@Overridepublic void onReceive(Context arg0, Intent arg1) {// TODO Auto-generated method stubSystem.out.println("OnReceiver data"+arg1.getStringExtra("txt"));}}

转载于:https://www.cnblogs.com/wuhailong/p/5229377.html

Android学习笔记之Broadcast Receiver相关推荐

  1. Android学习笔记 88. Broadcast receivers 广播接收器

    Android学习笔记 Android 开发者基础知识 (Java) -- Google Developers 培训团队 文章目录 Android学习笔记 Android 开发者基础知识 (Java) ...

  2. Android学习笔记之AndroidManifest.xml文件解析(摘自皮狼的博客)

    Android学习笔记之AndroidManifest.xml文件解析 一.关于AndroidManifest.xml AndroidManifest.xml 是每个android程序中必须的文件.它 ...

  3. Android学习笔记:Android基础知识点(不断更新中)

    1.Android学习笔记:OkHttp 2.Android学习笔记:更新UI的方法(UI线程和非UI线程) 3.Android学习笔记:Volley 4.Android学习笔记:Handler 5. ...

  4. Android学习笔记第五篇--网络连接与云服务(一)

    Android学习笔记第五篇–网络连接与云服务 第一章.无线连接设备 ​ 除了能够在云端通讯,Android的无线API也允许在同一局域网内的设备通讯,**甚至没有连接网络,而是物理具体相近,也可以相 ...

  5. Android学习笔记21:ImageView获取网络图片

    Android平台有3种网络接口可以使用,它们分别是:java.net.*(标准java接口).org.apache(Apache接口)和android.net.*(Android网络接口).本文将使 ...

  6. Android学习笔记(七):多个Activity和Intent

    根据www.mars-droid.com:Andriod开发视频教学,先跳过书本<Beginning Android 2>的几个章,我是这两个资源一起看,需要进行一下同步.先初步了解一下应 ...

  7. Android学习笔记26:图片切换控件ImageSwitcher的使用

    在Windows操作系统中,要查看多张图片,可以通过使用"Windows照片查看器"在"上一张"和"下一张"之间切换,进行多张图片的浏览. ...

  8. Android学习笔记36:使用SQLite方式存储数据

    在Android中一共提供了5种数据存储方式,分别为: (1)Files:通过FileInputStream和FileOutputStream对文件进行操作.具体使用方法可以参阅博文<Andro ...

  9. Pro Android学习笔记(二九):用户界面和控制(17):include和merge

    xml控件代码重用:include 如果我们定义一个控件,需要在不同的layout中重复使用,或者在同一个layout中重复使用,可以采用include的方式.例如定义my_button.xml如下 ...

  10. Android学习笔记:TabHost 和 FragmentTabHost

    2019独角兽企业重金招聘Python工程师标准>>> Android学习笔记:TabHost 和 FragmentTabHostTabHost命名空间:android.widget ...

最新文章

  1. 斯坦福大学李飞飞团队图像分类课程笔记
  2. 【Codeforces 738D】Sea Battle(贪心)
  3. MPB:林科院袁志林组-​栎类外生菌根形态学特征描述
  4. 非香农类信息不等式_ICLR2020|北大图灵班本科生满分论文:计算约束下有用信息的信息论...
  5. [codeforces 339]D. Xenia and Bit Operations
  6. python+appium自动化测试如何控制App的启动和退出
  7. 有机晶体数据库_面向Journal of Organic Chemistry作者的晶体学信息文件(CIF)工作流程将于10月6日作出调整...
  8. 开源DataBase组件:FluentMigrator
  9. 通过napalm-huawei-vrp模块对华为交换机信息进行分析(ENSP模拟器)
  10. [10]STM32程序调试方法-STLINK调试和软件调试
  11. Android开发之各种好看的背景颜色
  12. 基于 Java 的 I Don’t Wanna Be The Bugger 冒险游戏【100010211】
  13. 滴滴研究院副院长叶杰平 | 大规模稀疏和低秩学习
  14. Lock和Rlock
  15. 2.基础语法:手指抽筋模拟器
  16. ELKF:日志可视化Discovery
  17. 中标麒麟 NeoKylin 5.1 安装C++环境
  18. 重磅!全球Top 1000计算机科学家公布:张宏江居大陆科学家之首
  19. html中如何给图片设置浮动,css – 如何在div中浮动图像
  20. PXE自动化安装CentOS 8

热门文章

  1. C语言:计算1*2*3*....*100,即求100!。
  2. java 抽象类与接口的区别及其在jdk中的应用
  3. Windows核心编程_静态编译和动态编译的区别
  4. Linux第二周学习笔记(12)
  5. 开发时浏览器缓存问题
  6. jquery升级到新版本报错[jQuery] Cannot read property ‘msie’ of undefined错误的解决方法...
  7. 小程序开发之旅(持续更新中..)
  8. 从“如何设计用户超过1亿的应用”说起----数据库调优实战
  9. react native 之setState
  10. Android Window 9问9答