Android 服务和广播的使用
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"));
}
}
广播简单的用法就这样。
Android 服务和广播的使用的更多相关文章
- Android初级教程使用服务注册广播接收者监听手机解锁屏变化
之前第七章广播与服务理论篇写到: 特殊的广播接收者(一般发广播次数频率很高) 安卓中有一些广播接收者,必须使用代码注册,清单文件注册是无效的 屏幕锁屏和解锁 电量改变 今天在这里就回顾一下,且用代码方 ...
- Android 服务类Service 的详细学习
http://blog.csdn.net/vipzjyno1/article/details/26004831 Android服务类Service学习四大组建 目录(?)[+] 什么是服务 服务有 ...
- Android中的广播
Android中的广播 广播接受器,可以比喻成收音机.而广播则可以看成电台. Android系统内部相当于已经有一个电台 定义了好多的广播事件,比如外拨电话 短信到来 sd卡状态 电池电量变化... ...
- android 发送UDP广播,搜寻server建立socket链接
应用场景:client(手机.pc)须要搜寻所在局域网内的server并获得server地址. 方法简单介绍:client发送UDP广播,服务收到广播后得到clientip地址,然后向client发送 ...
- Android为什么需要广播Broadcast
在Android系统中,为什么需要广播机制呢?广播机制,本质上它就是一种组件间的通信方式,如果是两个组件位于不同的进程当中,那么可以用Binder机制来实现,如果两个组件是在同一个进程中,那么它 ...
- 入职小白随笔之Android四大组件——广播详解(broadcast)
Broadcast 广播机制简介 Android中的广播主要可以分为两种类型:标准广播和有序广播. 标准广播:是一种完全异步执行的广播,在广播发出之后,所有的广播接收器几乎都会在同一时刻接收到这条广播 ...
- Android中的广播Broadcast详解
今天来看一下Android中的广播机制,我们知道广播Broadcast是Android中的四大组件之一,可见他的重要性了,当然它的用途也很大的,比如一些系统的广播:电量低.开机.锁屏等一些操作都会发送 ...
- Android开发之广播
广播是Android开发中的一个重要的功能,在Android里面有各式各样的广播,比如:电池的状态变化.信号的强弱状态.电话的接听和短信的接收等等,现在给大家简单介绍一下系统发送.监听这些广播的机制. ...
- android之自定义广播
布局文件 点击按钮发送广播 <?xml version="1.0" encoding="utf-8"?> <LinearLayout xmln ...
随机推荐
- BZOJ3926&&lg3346 ZJOI诸神眷顾的幻想乡(广义后缀自动机)
BZOJ3926&&lg3346 ZJOI诸神眷顾的幻想乡(广义后缀自动机) 题面 自己找去 HINT 我们可以把题目拆解成几个部分,首先我们手玩一个结论,从所有的叶子节点出发,遍历整 ...
- ubuntu更改mysql配置文件,使其产生日志文件mysql.log
1.打开mysql配置文件,将68,69行的注释取消掉,保存关闭 sudo vim /etc/mysql/mysql.conf.d/mysqld.cnf 2.重启mysql服务 sudo servic ...
- Socket之UDP
相对于TCP/IP来说,UDP更像是发快递和写信,不需要判断和对方是否连通就可以发送,而TCP/IP必须确认连通之后才可以发送,这样UDP通讯其实不能严格按照TCP/IP的说法区分服务器和客户端,对于 ...
- C语言 小技巧函数方法总结
1.使用^(异或) 不引入第三变量交换两个变量的值. /* 交换 int a 和 int b 的值*/ #include <stdio.h> int main(int argc, char ...
- CentOS MySQL自动备份shell脚本
先执行 vim/mysqlBack/back.sh 然后添加以下内容 ## 记录日志 # 以下配置信息请自己修改 mysql_user="root" #MySQL备份用户 mys ...
- StaticFileMiddleware 解析
说明:由于部分产品没有静态资源的管理,我突然想到能不能用现有的静态文件中间件的功能调整一下实现多组织件上传文件的隔离呢?那第一步先看懂 StaticFileMiddleware做了什么吧. ...
- eclipse调字体大小
首先调java字体: Window -> Preferences -> General -> Appearance -> Colors and Fonts -> Java ...
- "换行"和"回车"的来历
\r: return 到当前行的最左边. \n: newline 向下移动一行,并不移动左右. Linux中\n表示:回车+换行: Windows中\r\n表示:回车+换行. Mac中\r表示:回车+ ...
- PP: Shape and time distortion loss for training deep time series forecasting models
Problem: time series forecasting Challenge: forecasting for non-stationary signals and multiple futu ...
- python求极值点(波峰波谷)
python求极值点主要用到scipy库. 1. 首先可先选择一个函数或者拟合一个函数,这里选择拟合数据:np.polyfit import pandas as pd import matplotli ...