- 浏览: 342417 次
- 性别:
- 来自: 长沙
文章分类
最新评论
-
努力吧飞翔:
...
[ExtJS] MVC应用架构示例 -
coolnight:
[Maven]Nexus 安装与配置 -
Kevin_jiang2011:
官网的文档写的不好。 简单的执行命令,又要重新下载一个ecli ...
jBPM5 入门 -
litterdeer:
好东西....
[ExtJS] MVC应用架构示例 -
basherone:
可以用,谢谢了
[ExtJS] MVC应用架构示例
后台服务:运行在后台,一般没有UI.
1.创建一个简单的服务
a.继承 android.app.Service
b.配置 服务
示例:
2.服务接口方法
onCreate():void //只调用一次,生命周期回调
onDestroy():void //服务销毁前调用
onLowMemory():void
onBind(Intent intent):IBinder //提供接口为外部应用服务
onReBind(Intent intent):void
onUnBind(Intent intent):boolean
onStart(Intent intent, int startId):void
stopSelf():void
stopSelf(int startId):void
stopSelfResult(int startId):boolean
setForeground(boolean isForeground):void
onConfigurationChanged(Configuration newConfiguration):void //重新配置服务
getApplication():Application //获取实现服务的应用
3.
一个服务可以是本地服务或远程服务,但不能两种类型都是.
本地服务:通过 Context.startService() 启动.
远程服务:通过 Context.bindService() 启动.
4.
本地服务
5.
远程服务(RPC)
a.使用AIDL定义一个服务
b.继承服务,实现接口
c.配置服务
使用远程服务
a.绑定服务
e.处理响应
AIDL 定义一个服务
IStockQuoteService.aidl
eclipse adt 自动编译 *.aidl 为 *.java
IStockQuoteService.java
实现定义的 AIDL 接口
StockQuoteService.java
暴露服务:
调用服务:
a.创建一个新项目 ServiceClient
b.创建一个新包名 com.syh
c.复制 IIStockQuoteService.aidl 文件到 com.syh 中.
d.调用 Context.bindService();
e.通过 ServiceConnection 的 onServiceConnected 调用远程方法
6.复杂类型打包
Parcelable
Persion.java
项目源码:
1.创建一个简单的服务
a.继承 android.app.Service
b.配置 服务
示例:
public class TestService extends Service{ @override public void onCreate(){ super.onCreate(); Log.d(TAG, "create testservice..."); } @override public IBinder onBind(Intent intent){ Log.d(TAG, "service bind to ..."); return null; } } AndroidManifest.xml<service name="package-path.TestService"></service>
2.服务接口方法
onCreate():void //只调用一次,生命周期回调
onDestroy():void //服务销毁前调用
onLowMemory():void
onBind(Intent intent):IBinder //提供接口为外部应用服务
onReBind(Intent intent):void
onUnBind(Intent intent):boolean
onStart(Intent intent, int startId):void
stopSelf():void
stopSelf(int startId):void
stopSelfResult(int startId):boolean
setForeground(boolean isForeground):void
onConfigurationChanged(Configuration newConfiguration):void //重新配置服务
getApplication():Application //获取实现服务的应用
3.
一个服务可以是本地服务或远程服务,但不能两种类型都是.
本地服务:通过 Context.startService() 启动.
远程服务:通过 Context.bindService() 启动.
4.
本地服务
5.
远程服务(RPC)
a.使用AIDL定义一个服务
b.继承服务,实现接口
c.配置服务
使用远程服务
a.绑定服务
e.处理响应
AIDL 定义一个服务
IStockQuoteService.aidl
package com.syh; interface IStockQuoteService{ double getQuote(String ticker); }
eclipse adt 自动编译 *.aidl 为 *.java
IStockQuoteService.java
package com.syh; import java.lang.String; import android.os.*; public interface IStockQuoteService extends android.os.IInterface{ public static abstract class Stub extends android.os.Binder implements IStockQuoteService{ private static final String DESCRIPTOR = "com.syh.IStockQuoteService"; public Stub(){ this.attachInterface(this, DESCRIPTOR); } ... } .... public double getQuote(String ticker) throws android.os.RemoteException{ ... } }
实现定义的 AIDL 接口
StockQuoteService.java
package com.syh; import ... public class StockQuoteService extends Service{ private NotificationManager notificationManager = null; public class StockQuoteServiceImpl extends IStockQuoteService.Stub { @override public double getQuote(String ticker){ return 2.0; } } @override public IBinder onBind(Intent intent){ return new StockQuoteServiceImpl (); } }
暴露服务:
<service name="com.syh.StockQuoteService"> <intent-filter> <action name="com.syh.IStockQuoteService" /> </intent-filter> </service>
调用服务:
a.创建一个新项目 ServiceClient
b.创建一个新包名 com.syh
c.复制 IIStockQuoteService.aidl 文件到 com.syh 中.
d.调用 Context.bindService();
e.通过 ServiceConnection 的 onServiceConnected 调用远程方法
public class MainActiviy extends Activity{ private IStockQuoteService service = null; @override public void onCreate(Bundle savedInstanceState){ super.onCreate(savedInstanceState); setContentView(R.layout.main); Button btn = (Button)super.findViewById(R.id.bindBtn); btn.setOnClickListener(new OnClickListener(){ @override public void onClick(View view){ this.bindService(new Intent(IStockQuoteService.class.getName(), sc, BIND_AUTO_CREATE)); } }); } private ServiceConnection sc = new ServiceConnection(){ @override public void onServiceConnected(ComponentName cname, IBinder service){ this.service = IStockQuoteService.Stub.asInterface(service); double val = 0.0; try{ val = this.service.getQuote("syh"); }catch(RemoteException e){ Log.e(TAG, e.getMessage(), e); } } @override public void onServiceDisConnected(ComponentName cname){ } }; }
6.复杂类型打包
Parcelable
Persion.java
public class Person extends Object implements Parcelable{ private int age = 0; private String name = ""; public static final Parcelable.Creator<Person> CREATOR = new Parcelable.Creator<Person>(){ public Person createFormParcel(Parcel in){ return new Person(in); } public Person[] newArray(int size){ return new Person[size]; } }; public Person(){} private Persion(Parcel in){ readFormParcel(in); } @override public int describeContents(){ return 0; } @override public void writeToParcel(Parcel out, int flags){ out.writeString(name); out.writeInt(age); } @override public void readFromRarcel(Parcel in){ name = in.readString(); age = in.readInt(); } //-- getter/setter ... }
项目源码:
- rpc.zip (101 KB)
- 下载次数: 125
发表评论
-
使用phantom-limb 模拟Touch 事件
2012-04-14 22:15 21391 下载 phantom-limb.js 2. 使用 2. ... -
读取本地私有文件
2009-11-08 12:58 2334package tl.android.utils; ... -
Android 文件搜索引擎
2009-11-08 02:44 0手机文件管理: 1.文件备份 2.创建文件/文件夹 3.批量复 ... -
Android HTTP 服务
2009-11-06 21:23 6921使用 HTTP 服务: 1. Apache HttpClin ... -
Android 2D 动画
2009-11-05 22:08 17181.帧动画 AnimationDrawable 2.布局动 ... -
Android Intents
2009-11-05 14:37 2138Android Intent 是 Android 进 ... -
Android 自定义ContentProvider
2009-11-04 00:30 4945自定义 ContentProvider ----------- ... -
Android 安全模型
2009-10-30 20:09 2594Android 安全模型包括两个方面:部署和运行. 部署应用 ... -
Intent 初探
2009-10-29 18:36 1141Intent package android.conte ... -
Android 示例之 notepad
2009-10-29 17:50 3585AndroidManifest.xml <?xml ... -
Android 用户界面(User Interface)
2009-10-28 09:57 1769View 基类: 视图对象在屏幕特定矩形区域处理自己的尺寸,布 ... -
Android 应用程序开发基础
2009-10-28 08:42 13031. 每一个应用程序运行在一个独立的进程,每一个进程运行在一个 ... -
android emulator( android模拟器)
2009-10-24 18:28 4029Android Emulator ============== ... -
android AVDs mksdcard dx工具介绍
2009-10-24 01:30 4641引用android 工具是一个脚本文件,用于创建,管理AVDs ... -
adb (Android Debug Bridge) Android 调试桥
2009-10-24 00:47 3979Android Debug Bridge (adb) 是一个通 ... -
aapt 工具( Android Asset Packaging Tool )
2009-10-23 23:33 7718aapt (Android Asset Packaging T ... -
AIDL (Android Interface Definition Language) Android 接口定义语言
2009-10-23 10:29 3267AIDL (Android Interface Definit ... -
Dedexer:Dex文件反编译工具介绍
2009-10-23 05:47 11666Dedexer 项目主页: http://de ... -
Android 开发环境配置
2009-10-21 06:05 1437准备: 1.下载JDK1.6 2.下载Android SDK ...
相关推荐
Delphi XE 开发Android后台服务是针对使用Embarcadero Delphi XE8及以下版本的开发者,想要构建能够持续运行并独立于用户界面执行任务的Android应用程序的一个重要技术。Delphi作为一款强大的RAD(快速应用开发)...
"Android后台服务自启动"是指在特定条件下(如设备启动、接收到特定广播等)自动启动服务的功能。这对于实现定时任务、后台音乐播放、后台数据同步等需求非常关键。 一、Android Service基础知识 1. Service分类:...
Android 后台服务详解 Android 后台服务是 Android 系统的核心组件之一,它提供了一个无界面、长时间运行的应用功能。了解 Service 的原理和用途是 Android 开发的关键。 Service 的原理 Service 是 Android 系统...
特别是对于定位功能,Android后台服务能够允许应用在用户不直接与应用交互时持续获取位置信息。下面我们将深入探讨Android后台服务定位的相关知识点。 一、Android服务基础 1. 创建Service:通过继承`Service`类并...
总的来说,Android后台服务悬浮窗动态截屏涉及了IntentService、悬浮窗、系统权限、反射、屏幕捕获和MediaProjection等多个技术点。理解并熟练掌握这些知识点,能帮助开发者创建出高效、稳定的后台截屏与录屏应用。
这篇内容将详细讲解如何让Android后台服务在各种条件下尽可能地保持运行状态。 首先,理解Android服务生命周期是至关重要的。服务主要包含以下方法: 1. `onCreate()`: 当服务首次创建时调用。 2. `onStartCommand...
【Android 后台服务详解】 Android 后台服务(Service)是Android系统中不可或缺的一部分,它主要用于执行长时间运行的操作,而这些操作通常不需要用户界面。服务的特性使其非常适合处理如音乐播放、定时任务、网络...
### Android后台服务详解 #### 一、Service简介 **1.1 Service定义及特点** - **定义**: Service是Android系统中的后台服务组件,主要用于执行长时间运行的任务或操作,如后台音乐播放、数据下载等。 - **特点**:...
这个“android后台服务例子”很显然是一个演示如何创建和使用Android服务的实例,尤其是涉及到自动执行任务,如定时输出日志和驱动注入代码。 服务的基本概念: 在Android系统中,Service是应用程序的一个组成部分...
Android后台服务,Android后台服务
### 第七章 Android 后台服务详解:电话服务、SMS 和 MMS #### Service 技术概述 在 Android 应用开发中,Service 是一种重要的组件,它可以在没有用户界面的情况下运行于后台,执行长时间运行的操作,如播放音乐...
本压缩包文件“android后台服务运行保持不被干掉”可能包含一种策略或技术,使得服务能在后台更持久地运行,不受系统清理的影响。 首先,我们需要理解Android服务的工作机制。服务可以通过`startService()`启动,...
这个“Xamarin.Android后台服务中的流式音频示例_C#_下载.zip”压缩包提供了一个使用C#编写的实例,展示了如何在Android应用中实现后台流式音频播放。下面将详细介绍相关知识点: 1. **Xamarin.Android**:Xamarin...
这个“安卓Android后台保活服务Demo”旨在提供一种解决方案,帮助应用在后台持续运行,同时避免被手机厂商的内存清理机制误杀。 一、后台保活服务原理: 在Android系统中,当应用被切换到后台或者用户离开应用时,...
本教程将深入探讨如何创建和使用一个简单的Android后台服务——"SimpleRandomServiceDemo"。 首先,我们来看一下"SimpleRandomServiceDemo"这个名字。这可能是一个示例项目,展示了如何创建一个生成随机数的后台...
【Android后台服务】Android系统提供了一种机制,称为Service,用于在后台执行长时间运行的任务,即使用户界面(Activity)已被关闭。Service不直接与用户交互,但可以与应用程序的其他部分进行通信,确保某些功能在...
Android后台服务是Android系统中一种特殊组件,主要用于在后台执行长时间运行的任务,即使用户与应用的交互界面(Activity)已经关闭。服务不能直接与用户交互,但它可以在后台持续运行,这对于需要持续运行的任务如...
android后台服务代码c#,与android客户端通信,客户端下载地址:http://download.csdn.net/detail/generallizhong/9817304