Android 服务和广播的使用

服务的使用

创建服务类

创建一个java文件,取名 mService.java,继承Service。

public class mService extends Service {}

返回服务控制器

  /**
* 绑定服务
*
* @param intent
* @return
*/
@Override
public IBinder onBind(Intent intent) {
return new myControl();
}

创建一个中间类,来操作服务类方法。

    /**
* 中间类
*/
public class myControl extends Binder { // 创建方法,可供其他activity内调用
public void mcontrol(String instructions) {
// ....
}
}

创建服务

    /**
* 创建服务
*/
@Override
public void onCreate() {
super.onCreate();
// ....创建服务时执行的方法
}

开启服务

    /**
* 开启服务
*/
@Override
public int onStartCommand(Intent intent, int flags, int startId) {
return super.onStartCommand(intent, flags, startId);
}

activity使用服务

在需要使用服务的activity文件的 onCreate 文件中引入服务并启动

        // 启动服务
Intent intent = new Intent(MainActivity.this, mService.class);
startService(intent);
conn = new mControl();
// 绑定服务
bindService(intent, conn, BIND_AUTO_CREATE);

创建中间类,用来操作服务中的方法

    /**
* 创建中间件对象
*/
class mControl implements ServiceConnection { @Override
public void onServiceConnected(ComponentName name, IBinder service) {
control = (mService.myControl) service;
} @Override
public void onServiceDisconnected(ComponentName name) { }
}

当activity中需要调用服务中的方法时

 control.mcontrol("31");

服务使用就是这样。

广播的使用

发送广播

        // 发送广播
Intent intent = new Intent();
intent.putExtra("temValue", temValue);
intent.setAction("mService");
sendBroadcast(intent);

接受广播

在需要接受广播的 activity 中注册广播监听者

        // 注册广播监听者
receiver = new mReceiver();
IntentFilter filter = new IntentFilter();
filter.addAction("mService");
MainActivity.this.registerReceiver(receiver, filter);

创建广播监听者内部类

    // 广播监听者
public class mReceiver extends BroadcastReceiver { @Override
public void onReceive(Context context, Intent intent) {
Bundle bundle = intent.getExtras();
temValue.setText(bundle.getString("temValue"));
}
}

广播简单的用法就这样。

案例:https://github.com/wjw1014/IntelligentMine/blob/master/app/src/main/java/com/example/admin/mine_feiyang/mService.java

Android 服务和广播的使用的更多相关文章

  1. Android初级教程使用服务注册广播接收者监听手机解锁屏变化

    之前第七章广播与服务理论篇写到: 特殊的广播接收者(一般发广播次数频率很高) 安卓中有一些广播接收者,必须使用代码注册,清单文件注册是无效的 屏幕锁屏和解锁 电量改变 今天在这里就回顾一下,且用代码方 ...

  2. Android 服务类Service 的详细学习

    http://blog.csdn.net/vipzjyno1/article/details/26004831 Android服务类Service学习四大组建   目录(?)[+] 什么是服务 服务有 ...

  3. Android中的广播

    Android中的广播 广播接受器,可以比喻成收音机.而广播则可以看成电台. Android系统内部相当于已经有一个电台 定义了好多的广播事件,比如外拨电话 短信到来 sd卡状态 电池电量变化... ...

  4. android 发送UDP广播,搜寻server建立socket链接

    应用场景:client(手机.pc)须要搜寻所在局域网内的server并获得server地址. 方法简单介绍:client发送UDP广播,服务收到广播后得到clientip地址,然后向client发送 ...

  5. Android为什么需要广播Broadcast

       在Android系统中,为什么需要广播机制呢?广播机制,本质上它就是一种组件间的通信方式,如果是两个组件位于不同的进程当中,那么可以用Binder机制来实现,如果两个组件是在同一个进程中,那么它 ...

  6. 入职小白随笔之Android四大组件——广播详解(broadcast)

    Broadcast 广播机制简介 Android中的广播主要可以分为两种类型:标准广播和有序广播. 标准广播:是一种完全异步执行的广播,在广播发出之后,所有的广播接收器几乎都会在同一时刻接收到这条广播 ...

  7. Android中的广播Broadcast详解

    今天来看一下Android中的广播机制,我们知道广播Broadcast是Android中的四大组件之一,可见他的重要性了,当然它的用途也很大的,比如一些系统的广播:电量低.开机.锁屏等一些操作都会发送 ...

  8. Android开发之广播

    广播是Android开发中的一个重要的功能,在Android里面有各式各样的广播,比如:电池的状态变化.信号的强弱状态.电话的接听和短信的接收等等,现在给大家简单介绍一下系统发送.监听这些广播的机制. ...

  9. android之自定义广播

    布局文件 点击按钮发送广播 <?xml version="1.0" encoding="utf-8"?> <LinearLayout xmln ...

随机推荐

  1. CTF伪协议+preg_replace()函数的代码执行

    一道学习中所遇到的ctf 步骤: 我们点击题目链接,然后在页面先点击”云平台后台管理中心“ 然后url后面跟了参数page,题目提示了一个文件包含,我们试试index.php 看到了输出了ok,应该是 ...

  2. arcgis10.2下载安装教程

    ArcGIS Desktop 10.2 完全安装教程(含win7 32/64位+下载地址+亲测可用) 时间: 2014年08月20日   阅读: 622,262   分类: GIS探秘   标签: A ...

  3. IntelliJ IDEA 如何彻底删除项目的步骤

    原文参考链接:https://www.jb51.net/article/129473.htm 本文介绍了IntelliJ IDEA 如何彻底删除项目的步骤,分享给大家,顺便给自己留个笔记,具体如下: ...

  4. 从零开始学 Java - 搭建 Spring MVC 记录云创的日子 第一章

    2017年11月29日 来到新项目,需要用到Spring MVC ,那么我就开始记录我这次的学习. Spring MVC 框架是围绕一个 DispatcherServlet 来设计的,这个 Servl ...

  5. cobbler自动安装linux

    1- cobbler简介   cobbler是一个系统启动服务boot server,可以通过pxe得方式用来快速安装.重装系统,支持安装不同linux发行版和windows.   基于python开 ...

  6. java - GC垃圾收集器详解(二)

    CMS收集器 CMS收集器(ConcurrentMarkSweep:并发标记清除)是一种以获取最短回收停顿时间为目标的收集器. 适合应用在互联网站或者B/S系统的服务器上,这类应用尤其重视服务器的响应 ...

  7. CSS:display:flex详解

    水平居中很容易实现,但是一般垂直居中好像不是很好实现,一般我们都会用position.left等等进行定位:但是flex很好的解决了这个问题 Flex就是"弹性布局",现在应用很多 ...

  8. 在vue项目中使用MD5.js

    1.安装 npm install --save js-md5 2.引入 import md5 from 'js-md5'; 3.使用 md5('holle') // bcecb35d0a12baad4 ...

  9. Help Jimmy POJ - 1661 dp

    #include<iostream> #include<stdio.h> #include<algorithm> #include<cstring> u ...

  10. 《深入理解java虚拟机》读书笔记十一——第十二章

    第十二章  Java内存模型与线程 1.硬件效率与一致性 由于计算机的存储设备与处理器的运算速度有几个数量级的差距,所以现代计算机系统都不得不加入一层读写速度尽可能接近处理器运算速度的高速缓存(Cac ...