当一个Service在androidManifest中被声明为 process=":remote", 或者是还有一个应用程序中的Service时,即为远程Service, 远程的意思是和当前程序不在同一个进程中执行. Activity和远程Service的跨进程通信(IPC)通过Binder机制,使用AIDL服务实现. 一.  定义远程服务端 1.新建一个project,project文件夹例如以下 2. 文件内容 aidl传递复杂对象时,须要该对象实现Parcelable或Seria…
服务端:只有服务,没有界面 1.编写interface文件,复制到 .aidl 文件中,并去掉其中的public 等修饰符.系统会自动在gen目录下生成对应的java文件  (对应本地调用中的接口文件)…
1.什么是Service? Service是Android四大组件中与Activity最相似的组件,它们都代表可执行的程序,Service与Activity的区别在于:Service一直在后台运行,它没有用户界面,所以绝不会到前台来.一旦Service被启动起来,它就与Activity一样.它完全具有自己的生命周期. A Service is an application component that can perform long-running operations in the back…
在Android中,Service是运行在主线程中的,如果在Service中处理一些耗时的操作,就会导致程序出现ANR. 但如果将本地的Service转换成一个远程的Service,就不会出现这样的问题了. 转换成远程Service非常简单,只需要在注册Service的时候将他的android:process的属性制定成 :remote就可以了. 重新运行项目,你会发现,不会出现ANR了. 为什么将MyService转换成远程Service后就不会导致程序ANR了呢?这是由于,使用了远程Serv…
相信大多数朋友对Service这个名词都不会陌生,没错,一个老练的Android程序员如果连Service都没听说过的话,那确实也太逊了.Service作为Android四大组件之一,在每一个应用程序中都扮演着非常重要的角色.它主要用于在后台处理一些耗时的逻辑,或者去执行某些需要长期运行的任务.必要的时候我们甚至可以在程序退出的情况下,让Service在后台继续保持运行状态. 不过,虽然Service几乎被每一个Android程序员所熟知,但并不是每个人都已经将Service的各个知识点都掌握得…
一.Activity 和 Service进行通信的基本概念 前面我们学习我生命周期里面包含了启动和停止服务的方法,虽然服务器在活动里启动,但在启动了服务之后,活动与服务基本就没有什么关系了.我们在活动里调用了startService()方法来启动Service这个服务,然后Service的onCreate()和onStartCommaned()方法就会得到执行.之后服务会一直运行状态,但具体运行的是什么逻辑,活动就控制不了咯,这就类似于活动通知了服务一下,“你可以启动了”,然后服务就去忙自己的事…
2.具体使用解析 2.1 本地Service 这是最普通.最常用的后台服务Service. 2.1.1 使用步骤 步骤1:新建子类继承Service类 需重写父类的onCreate().onStartCommand().onDestroy()和onBind()方法 步骤2:构建用于启动Service的Intent对象 步骤3:调用startService()启动Service.调用stopService()停止服务 步骤4:在AndroidManifest.xml里注册Service 例子: 步…
这是milo很早之前写在论坛上的一个帖子,现在整理出来,milo也复习一下一般来说Android 的四大组件都是运行在同一个进程中的,但远程Service运行在不同的进程里.这进程间的通信是使用了Android Binder机制.Android 中Service 有本地Service和远程Service之分,本地Service用法比较简单,而远程Service用法稍微要复杂一些.下面就是一个使用AIDL的用法. AIDL即android 接口定义语言,概念不多说,网上有太多的帖子介绍概念.本文只…
http://blog.csdn.net/vipzjyno1/article/details/26004831 Android服务类Service学习四大组建   目录(?)[+] 什么是服务 服务有什么用 概述 类组成 服务的类型 按照使用范围分类 本地服务Local Service用于应用程序内部 远程服务Remote Sercie用于android系统内部的应用程序之间 按照运行类别分类分 前台服务 Running a Service in the Foreground 后台服务 生命周期…
文章转载至CSDN社区罗升阳的安卓之旅,原文地址:http://blog.csdn.net/luoshengyang/article/details/6685853 在Android系统中,Activity和Service是应用程序的核心组件,它们以松藕合的方式组合在一起构成了一个完整的应用程序,这得益 于应用程序框架层提供了一套完整的机制来协助应用程序启动这些Activity和Service,以及提供Binder机制帮助它们相互间进行通信.在前 面的文章Android进程间通信(IPC)机制B…
跨应用绑定Service并通信: 1.(StartServiceFromAnotherApp)AIDL文件中新增接口: void setData(String data); AppService文件中实现接口: public IBinder onBind(Intent intent) { return new IAppServiceRomoteBinder.Stub() { @Override public void basicTypes(int anInt, long aLong, boole…
android SDK提供了Service,用于类似*nix守护进程或者windows的服务. Service有两种类型: 本地服务(Local Service):用于应用程序内部 远程服务(Remote Sercie):用于android系统内部的应用程序之间 前者用于实现应用程序自己的一些耗时任务,比如查询升级信息,并不占用应用程序比如Activity所属线程,而是单开线程后台执行,这样用户体验比较好. 后者可被其他应用程序复用,比如天气预报服务,其他应用程序不需要再写这样的服务,调用已有的…
1.Service简单概述   Service(服务)是一个一种可以在后台执行长时间运行操作而没有用户界面的应用组件.服务可由其他应用组件启动(如Activity),服务一旦被启动将在后台一直运行,即使启动服务的组件(Activity)已销毁也不受影响. 此外,组件可以绑定到服务,以与之进行交互,甚至是执行进程间通信 (IPC). 例如,服务可以处理网络事务.播放音乐,执行文件 I/O 或与内容提供程序交互,而所有这一切均可在后台进行: Service基本上分为两种形式 启动状态   当应用组件…
1.获取音乐 1-1:获取手机中的音乐(用ContentProvider内容提供者来完成): package com.firefly.util; import java.util.ArrayList; import java.util.HashMap; import java.util.Iterator; import java.util.List; import android.content.Context; import android.database.Cursor; import an…
我们研究两个问题,1.Service如何通过Broadcaster更改activity的一个TextView.(研究这个问题,考虑到Service从服务器端获得消息之后,将msg返回给activity) 2.Activity如何通过Binder调用Service的一个方法.(研究这个问题,考虑到与服务器端交互的动作,打包至Service,Activity只呈现界面,调用Service的方法) 结构图见如下:效果图如下:点击“start service”按钮,启动Service,然后更改Activ…
activity可以绑定Service,并且可以调用Service中定义的方法 Service代码:在里面多了一个IBinder;个人理解是用来与Activity绑定的主要通道: public class MainServer extends Service { private final String TAG = "Service------->"; private final IBinder binder = new MyBinder(); //绑定器 public clas…
参考博客:http://www.cnblogs.com/newcj/archive/2011/05/30/2061370.html   http://www.cnblogs.com/feisky/archive/2010/01/01/1637427.html 直接上图: Activity 生命周期 Service生命周期: Activity和Service 交互:…
参考:<Professional Android 4 Application Development> 深入了解Android Activity 每一个Android Activity都对应于一个用户界面(UI).每个Android Application都有一个main Activity,而这个main Activity大多由多个Fragment组成,而这些Fragment后面往往都由一个或多个secondary Activity支持.当用户在不同的界面(窗口)切换时,Android会生成对…
阿里P7Android高级架构进阶视频免费学习请点击:https://space.bilibili.com/474380680本篇文章将先从以下三个内容来介绍Service内核原理: [startService与bindService的区别] [多线程IntentService的工作原理 & 源码分析] [前台服务以及通知] 一 startService与bindService的区别 Android执行Service有两种方法,一种是startService,一种是bindService.下面让…
前言 啦啦啦~各位好久不见啦~博主最近比较忙,而且最近一次实验也是刚刚结束~ 好了不废话了,直接进入我们这次的内容~ 在这篇博文里我们将学习Service(服务)的相关知识,学会使用 Service 进行后台工作, 学会使用 Service 与 Activity 进行通信,并在此知识基础上学会使用 MediaPlayer和简单的多线程编程.使用 Handle 更新 UI,并设计成功一个简单的音乐播放器. 是不是很高大上呢~一起来学习~ 基础知识 Service作为Android四大组件之一,在每…
这几天忙着驾校考试,连电脑都碰不到了,今天总算告一段落了~~Service作为Android的服务组件,默默地在后台为整个程序服务,辅助应用与系统中的其他组件或系统服务进行沟通.它跟Activity的级别差不多,但不能自己运行只能后台运行.service可以在很多场合的应用中使用,比如播放多媒体的时候用户启动了其他Activity这个时候程序要在后台继续播放,比如检测SD卡上文件的变化,再或者在后台记录你地理信息位置的改变等等, 总之服务总是藏在后台的. ps:Service运行在主线程中的,所…
前言 Service作为Android四大组件之一,应用非常广泛 本文将介绍对Service进行全面介绍(基础认识.生命周期.使用和应用场景) 目录 目录 1. 基础知识 定义:服务,属于Android中的计算型组件 作用:提供需要在后台长期运行的服务(如复杂计算.下载等等) 特点:长生命周期的.没有用户界面.在后台运行 2. 生命周期方法详解 具体请看我写的文章:Android:Service生命周期最全面解析 3. Service分类 3.1 Service的类型 分类 3.2 详细介绍 S…
本文參考http://blog.csdn.net/saintswordsman/article/details/5130947 android的多进程是通过Binder来实现的,一个类,继承了Binder,那么它的对象就能够被远程的进程使用了(前提是远程进程获取了这个类的对象[对象的引用],至于如怎样获得看下文),怎么使用呢?在Android中, 则採用AIDL(Android InterfaceDefinition Language:接口定义语言)方式实现.所以我们必须写后缀为.aidl的文件…
一.调用方式    1.启动服务    只启动一个服务,不进行通信,包括startService.startForegroundService两种调用方式.第二种方式适用于后台应用启动前台服务,在启动后的10s内(具体时间由ActiveServices.SERVICE_START_FOREGROUND_TIMEOUT定义),需要Service调用startForeground启动一个Notification,不然会出现ANR.    整个启动流程基于ActivityManagerProxy.Ac…
阿里P7Android高级架构进阶视频免费学习请点击:https://space.bilibili.com/474380680本篇文章将先从以下三个内容来介绍通信方案: [Activity与Fragment之间的通信交互] [ Service和Activity的相互通信] [Intent传递数据大小限制] 一.Activity与Fragment之间的通信交互 1.1.APP构成 MainActivity+底部导航栏: 1.2.通信目的 MainActivity中成员方法test(),fragme…
---恢复内容开始--- 1,Service的生命周期…
Android四大组件之Service Android支持服务的概念,服务是在后台运行的组件,没有用户界面,Android服务可用有与活动独立的生命周期.Android支持两种类型的服务: 本地服务: 本地服务只能由承载该服务的应用程序访问,无法供在设备上运行的其他应用程序访问.客户端调用Context.startService()启动该服务. 远程服务: 远程服务除了可从承载服务的应用程序访问,还可以从其他应用程序访问.远程服务使用AIDL向客户端定义.服务支持onBind()方法,客户端通过…
应用程序中,一个Activity通常就是一个单独的屏幕,它上面可以显示一些控件也可以监听并处理用户的事件做出响应. Activity之间通过Intent进行通信.在Intent 的描述结构中,有两个最重要的部分:动作和动作对应的数据. 典型的动作类型有:M AIN(activity的门户).VIEW.PICK.EDIT 等.而动作对应的数据则以URI 的形式进行表示.例如:要查看一个人的联系方式,你需要创建一个动作类型为VIEW 的intent,以及一个表示这个人的URI. 与之有关系的一个类叫…
转载请表明出处:http://blog.csdn.net/u012637501(嵌入式_小J的天空) 一.Service 1.Service简单介绍     Service为Android四大组件之中的一个.Service与Activity组件相似,都代表可执行的程序且有自己的生命周期,唯一的差别是Activity组件提供界面方便人机交互而Service仅仅在后台执行且没有交互界面.Service是android 系统中的一种组件,它们都是从Context派生出来的,可是它不能自己执行,仅仅能在…
前言 Activity是Android四大组件的老大,我们对它的生命周期方法调用顺序都烂熟于心了,可是这些生命周期方法到底是怎么调用的呢?在启动它的时候会用到startActivty这个方法,但是这个方法的背后是怎样来实现的呢,来看看源码一探究竟(API23,无关代码省略) 应用进程启动activity流程 首先来到startActivity(Intent intent): @Override public void startActivity(Intent intent) { this.sta…