创建一个服务,并与活动绑定

作为安卓四大组件之一的服务,毫无例外也要在manifast中进行注册

  • 新建服务类继承于Service,并覆盖onBind( )方法,用于与活动绑定
  1. public class MySevice extends Service {
  2.  
  3. //创建DownloadBinder对象mBinder
  4. private DownloadBinder mBinder = new DownloadBinder();
  5.  
  6. //创建DownloadBinder类,实现服务中需要等待活动指示来执行的方法
  7. class DownloadBinder extends Binder {
      //必须是pubilc修饰的方法
  8. public int getProcess() {
  9. return 0;
  10. }
  11. }
  12.  
  13. @Nullable
  14. @Override
  15. //返回DownloadBinder对象mBinder
  16. public IBinder onBind(Intent intent) {
  17. return mBinder;
  18. }
  19.  
  20. @Override
  21. //创建服务时执行
  22. public void onCreate() {
  23. Toast.makeText(this, "服务创建成功", Toast.LENGTH_LONG).show();
  24. super.onCreate();
  25. }
  26.  
  27. @Override
  28. //启动服务时执行
  29. public int onStartCommand(Intent intent, int flags, int startId) {
  30. Toast.makeText(this, "服务启动成功", Toast.LENGTH_LONG).show();
  31. return super.onStartCommand(intent, flags, startId);
  32. }
  33.  
  34. @Override
  35. //关闭服务时执行
  36. public void onDestroy() {
  37. Toast.makeText(this, "服务关闭成功", Toast.LENGTH_LONG).show();
  38. super.onDestroy();
  39. }
  40. }
  • 在Activity中找到传递过来的mBinder对象
  1. private MySevice.DownloadBinder mDownloadBinder;
  2. //创建匿名内部类ServiceConnection(),重写方法onServiceConnected(),onServiceDisconnected()分别在绑定和取消绑定时调用
  3. private ServiceConnection mConnection = new ServiceConnection() {
  4. @Override
  5. public void onServiceConnected(ComponentName name, IBinder service) {
  6. //向下转型,找到mDownloadBinder对象,并调用对象中的public方法
  7. mDownloadBinder = (MySevice.DownloadBinder) service;
  8. mDownloadBinder.getProcess();
  9. }
  10.  
  11. @Override
  12. public void onServiceDisconnected(ComponentName name) {
  13.  
  14. }
  15. };
  • 绑定服务与活动
  1. Intent thread_bind_service = new Intent(ThreadDemoActivity.this, MySevice.class);
  2. bindService(thread_bind_service,mConnection,BIND_AUTO_CREATE);
  3. /* bindService()方法接收三个参数,第一个参数就是刚刚构建出的 Intent 对象,
  4. * 第二个参数是前面创建出的 ServiceConnection 的实例,
  5. * 第三个参数则是一个标志位,这里传入 BIND_AUTO_CREATE 表示在活动和服务进行绑定后自动创建服务
  6. */
  • 解除绑定
  1.   unbindService(mConnection);

Android四大组件之服务的更多相关文章

  1. Android四大组件之服务-Service 原理和应用开发详解

    一.Android 服务简介 Service是android 系统中的四大组件之一(Activity.Service.BroadcastReceiver.ContentProvider),它跟Acti ...

  2. Android四大组件之服务的两种启动方式详解

    Service简单概述 Service(服务):是一个没有用户界面.可以在后台长期运行且可以执行操作的应用组件.服务可由其他应用组件启动(如:Activity.另一个service).此外,组件可以绑 ...

  3. Android 四大组件 Service 服务

    1.Service简单介绍 依照使用范围分类: 类别 优点 缺点 差别 应用 本地服务 Local  Service 本地服务在一定程度上节约了资源,另外本地服务由于是在同一进程,因此不须要IPC,也 ...

  4. Android学习之基础知识十三 — 四大组件之服务详解第一讲

    一.服务是什么 服务(Service)是Android中实现程序后台运行的解决方案,它非常适合去执行那些不需要和用户交互而且还要求长期运行的任务.服务的运行不依赖于任何用户界面,即使程序被切换到后台, ...

  5. 入职小白随笔之Android四大组件——服务(Service)

    Service Android多线程编程 当我们在程序中执行一些耗时操作时,比如发起一条网络请求,考虑到网速等原因,服务器未必会立刻响应我们的请求,此时我们就需要将这些操作放在子线程中去运行,以防止主 ...

  6. Android四大组件之一“广播”

    前言 Android四大组件重要性已经不言而喻了,今天谈谈的是Android中的广播机制.在我们上学的时候,每个班级的教室里都会装有一个喇叭,这些喇叭都是接入到学校的广播室的,一旦有什么重要的通知,就 ...

  7. Android 四大组件 与 MVC 架构模式

    作为一个刚从JAVA转过来的Android程序员总会思考android MVC是什么样的? 首先,我们必须得说Android追寻着MVC架构,那就得先说一下MVC是个啥东西! 总体而来说MVC不能说是 ...

  8. android四大组件(简单总结)

    activity 一个Activity通常就是一个单独的屏幕(窗口) Activity之间通过Intent进行通信 android应用中每一个Activity都必须要在AndroidManifest. ...

  9. Android 四大组件之再论service

    service常见的有2种方式,本地service以及remote service. 这2种的生命周期,同activity的通信方式等,都不相同. 关于这2种service如何使用,这里不做介绍,只是 ...

随机推荐

  1. over partition by与group by

    over partition by与group by 的区别 http://www.cnblogs.com/scottpei/archive/2012/02/16/2353718.html 今天看到一 ...

  2. python中*args, **kwargs理解

    先来看个例子: def foo(*args, **kwargs): print 'args = ', args print 'kwargs = ', kwargs print '----------- ...

  3. 初始socket

    一.客户端/服务器架构 1.C/S结构,即Client/Server(客户端/服务器)结构 2.我们在互联网中处处可见c/s架构比如说浏览器,qq,lol,视频软件... 3.我们学习socket就是 ...

  4. smarty基本用法

    简介: 1.smarty语法:它是php的一种模板引擎   它的设计特点是:业务逻辑与显示逻辑分离 Smarty的标签都是使用定界符{ }括起来注释:{* 我是Smarty的注释内容 *} <u ...

  5. ArcGIS API for JavaScript开发初探——基础知识

    1.前言 在ArcGIS Web API开发体系中一共有四大类,分别为: ArcGIS API for Flex ArcGIS API for JavaScript ArcGIS API for RE ...

  6. 安装windows phone 7

    本机环境win7 32位旗舰版,本来是4G内存的  系统只能读出2.9G,vs2010中文旗舰版,想搭建windows phone环境学习wp手机开发.安装完了之后明显感觉机器慢了些. ①:安装Mic ...

  7. Openfire+spark在linux上搭建内部聊天系统

    一.    实验环境 Ubuntu server14.04 openfire:http://www.igniterealtime.org/downloads/index.jsp spark:http: ...

  8. LeetCode Longest Substring Without Repeating Characters 最长不重复子串

    题意:给一字符串,求一个子串的长度,该子串满足所有字符都不重复.字符可能包含标点之类的,不仅仅是字母.按ASCII码算,就有2^8=128个. 思路:从左到右扫每个字符,判断该字符距离上一次出现的距离 ...

  9. [转载]正则表达式参考文档 - Regular Expression Syntax Reference.

    正则表达式参考文档 - Regular Expression Syntax Reference. [原创文章,转载请保留或注明出处:http://www.regexlab.com/zh/regref. ...

  10. IOS 线程描述

    ●什么是线程 ● 1个进程要想执行任务,必须得有线程(每1个进程至少要有1条线程) ● 线程是进程的基本执行单元,一个进程(程序)的所有任务都在线程中执行 ● 比如使用酷狗播放音乐.使用迅雷下载电影, ...