Services(服务)
百度音乐盒案例:源码:
- 接口:
package com.itheima.baidumusic;
public interface Iservice {
public void callPlay();
public void callPause();
public void callResume();
}
- 服务:
package com.itheima.baidumusic;
import android.app.Service;
import android.content.Intent;
import android.os.Binder;
import android.os.IBinder;
public class MusicService extends Service {
@Override
public IBinder onBind(Intent intent) {
return new Mybinder();
}
/**
* 播放的方法
*/
public void play(){
System.out.println("音乐播放了");
}
/**
* 暂停的方法
*/
public void pause(){
System.out.println("音乐暂停了");
}
/**
* 继续播放的方法
*/
public void resume(){
System.out.println("音乐继续播放");
}
/**
* 定义中间人对象 在 onBind方法中返回
* @author Administrator
*
*/
private class Mybinder extends Binder implements Iservice{
@Override
public void callPlay() {
play();
}
@Override
public void callPause() {
pause();
}
@Override
public void callResume() {
resume();
}
}
}
- 入口:
package com.itheima.baidumusic;
import android.os.Bundle;
import android.os.IBinder;
import android.app.Activity;
import android.content.ComponentName;
import android.content.Intent;
import android.content.ServiceConnection;
import android.view.Menu;
import android.view.View;
public class MainActivity extends Activity {
//我的中间人对象
private Iservice iservice;
private MyConn conn;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
// 1 我要保证 music服务在后台长期运行 我需要调用 startservice 方法
Intent intent = new Intent(this,MusicService.class);
startService(intent);
// 2 我需要调用服务里面的方法 我采用 bindService
conn = new MyConn();
bindService(intent, conn, BIND_AUTO_CREATE);
// 3 要做解绑操作 要记得擦屁股
}
/**
* 播放音乐
*/
public void play(View v){
iservice.callPlay();
}
/**
* 暂停播放
*/
public void pause(View v){
iservice.callPause();
}
/**
* 继续播放
*/
public void resume(View v){
iservice.callResume();
}
/**
* 定义绑定服务的接口
* @author Administrator
*
*/
private class MyConn implements ServiceConnection{
// 当服务被成功绑定的时候调用
@Override
public void onServiceConnected(ComponentName name, IBinder service) {
iservice = (Iservice) service;
}
@Override
public void onServiceDisconnected(ComponentName name) {
}
}
// 当activity 销毁的时候调用
@Override
protected void onDestroy() {
//解绑服务
unbindService(conn);
super.onDestroy();
}
}
- 清单:
<service android:name="com.itheima.baidumusic.MusicService"></service>
转载于:https://www.cnblogs.com/candledragle/p/4218386.html
Services(服务)相关推荐
- 远程桌面无法连接服务器,启动Terminal Services 服务报1053错误
今天碰到一棘手问题,一上午数据库服务器都无法连接,远程桌面也连不上了,但是可以PING通.项目组的同事一直反映数据库无法连接,耽误工作进度,真急人啊. 跑到机房一看,机器轰轰巨响,进入桌面,点个鼠标半 ...
- 基于Spring Boot应用Apache CXF发布Web Services服务
记录:298 场景:使用Spring Boot应用Apache CXF发布Web Services服务,实现跨系统之间交互接口. 版本: JDK 1.8 Spring Boot 2.6.3 Apach ...
- Zend Studio13.6.1创建web services服务
Zend Studio13.6.1创建web services服务 一.开发环境 1.1 zendstudio13.6.1 1.2 apache httpd-2.4.46-o111j-x64-vc15 ...
- 手动启动Remote Desktop Services服务,报错提示:“系统无法找到指定文件” ,该如何解决
手动启动Remote Desktop Services服务,报错提示:"系统无法找到指定文件" 解决方法: 1.打开regedit,找到路径HKEY_LOCAL_MACHINE\S ...
- w ndows更新,如何解决 Wndows 7 安装更新时遇到的 8024402f 错误及修复损坏的 Cryptographic Services 服务.pdf...
如何解决 Wndows 7 安装更新时遇到的 8024402f 错误及修复损坏的 Cryptographic Services 服务 嚼 华 刷 亡 披 风 秸 凶 毛 搪 迎 腾 技 班 籽 办 纯 ...
- WCF Data Services服务端处理汇总
和可以在客户端直接使用的查询对应,在服务端也有很多可以增强的功能 Service Operations 自己发布一些业务逻辑的处理 Service operations enable you to e ...
- 基于soap 的 python web services 服务开发指南
文章大纲 序言 相关概念 SOA web services SOAP WSDL UDDI 环境搭建 我们使用 python 3.6 这个较新python 版本 服务端开发 客户端开发 suds-jur ...
- 本地 Services(服务)
Services 什么是Services android中服务是运行在后台的东西,级别与activity一样.既然说service是运行在后台的服务,那么它就是不可见的,没有界面的东西.可以启动一个服 ...
- Windows server 2008启动remote dosktop services服务报错1079
原创 欢迎转载,届时请注明出处 报错场景 今天,刚开始启动win server的远程连接服务(remote desktop services)时 该服务可以正常启动,然后选择了 "计算机- ...
- .NET Web Services服务
一.简介 Web Services 可使您的应用程序成为 Web 应用程序. Web Services 通过 Web 进行发布.查找和使用. 1.什么是Web Services? Web Servic ...
最新文章
- 如何搞垮一个技术大牛?
- Sublime text 2/3 中 Package Control 的安装与使用方法
- linux下find查找带有指定权限的文件(windows下编译的源代码文件)
- 【ARM】Tiny4412裸板编程之按键
- Linux程序实现弹框,jQuery实现弹出框 效果绝对美观
- centos7 mysql 5.5.27_centos7上安装mysql-5.7.27
- mysql 柱状图统计_js/jquery 进行动态统计 各种柱状图 饼状图 线条图 等
- 苹果更新watchOS 7.3.1:修复Apple Watch进入省电模式后无法充电的问题
- 滴滴医护专车新增南京 共上线6城覆盖1.8万医护
- python为什么叫爬虫-python为什么叫爬虫?为什么python开发会突然火起来?
- html框架 book,HTML框架的基本结构的.doc
- java关键字有system吗_java 关键字
- Android 超级工具类
- jdbc连接timesten_Java 连接 timesten
- python爬取上证50ETF成分股信息
- 游戏外挂怎么来的?十年经验的老程序员道出了这些不为人知的秘密
- 分布式事务—Lec12课前资料
- saas-export项目-系统日志管理-系统日志AOP配置
- Android 软件开发时用到的一些有用软件列表
- 框架:什么是框架?为什么要使用框架?框架有什么作用
热门文章
- 上交2017计算机专业就业,上海交通大学计算机科学与工程系(CSE)
- 密码学是如何保护区块链的
- Observables简介以及它们与Promise有何不同
- 工厂用抽象类比接口_用简单的现实类比解释硬编码概念
- Hadoop集群的基本操作(三:HBase的基本操作)
- cmd库的导入Java,在cmd命令窗口导入第三方jar包来运行java文件
- priority_queue 结构体的优先级设置
- java 查询 代码_java使用es查询的示例代码
- UI设计师必备技能,看看你都学会了吗?
- HTML5培训后好就业吗