- 浏览: 367328 次
- 性别:
- 来自: 福州
文章分类
最新评论
-
loveskey:
找了好久,可算是找到了。感谢
dx.jar dx.bat -
zhaoyi168:
可以把工程的代码发给我吗?
ZJLN1982@yahoo.co ...
Athrun Demo -
ergodic09:
請問樓主 我目前在porting AR6003但是無法自己產生 ...
009-Android平台开发-WIFI function porting-WIFI功能移植 -
iedj99fei:
...
androi中xliff:g
1. ITaskCallback.aidl
package com.cmcc.demo;
interface ITaskCallback {
void actionPerformed(int actionId);
}
2. ITaskBinder.aidl
package com.cmcc.demo;
import com.cmcc.demo.ITaskCallback;
interface ITaskBinder {
boolean isTaskRunning();
void stopRunningTask();
void registerCallback(ITaskCallback cb);
void unregisterCallback(ITaskCallback cb);
}
3. MyService.java
package com.cmcc.demo;
import android.app.Service;
import android.content.Intent;
import android.os.IBinder;
import android.os.RemoteCallbackList;
import android.os.RemoteException;
import android.util.Log;
public class MyService extends Service {
@Override
public void onCreate() {
printf("service create");
}
@Override
public void onStart(Intent intent, int startId) {
printf("service start id=" + startId);
callback(startId);
}
@Override
public IBinder onBind(Intent t) {
printf("service on bind");
return mBinder;
}
@Override
public void onDestroy() {
printf("service on destroy");
super.onDestroy();
}
@Override
public boolean onUnbind(Intent intent) {
printf("service on unbind");
return super.onUnbind(intent);
}
public void onRebind(Intent intent) {
printf("service on rebind");
super.onRebind(intent);
}
private void printf(String str) {
Log.e("TAG", "###################------ " + str + "------");
}
void callback(int val) {
final int N = mCallbacks.beginBroadcast();
for (int i=0; i<N; i++) {
try { mCallbacks.getBroadcastItem(i).actionPerformed(val);
} catch (RemoteException e) {
// The RemoteCallbackList will take care of removing
// the dead object for us.
}
}
mCallbacks.finishBroadcast();
}
private final ITaskBinder.Stub mBinder = new ITaskBinder.Stub() {
public void stopRunningTask() {
}
public boolean isTaskRunning() {
return false;
}
public void registerCallback(ITaskCallback cb) {
if (cb != null) mCallbacks.register(cb);
}
public void unregisterCallback(ITaskCallback cb) {
if (cb != null) mCallbacks.unregister(cb);
}
};
final RemoteCallbackList<ITaskCallback> mCallbacks
= new RemoteCallbackList<ITaskCallback>();
}
4. MyActivity.java
package com.cmcc.demo;
import android.app.Activity;
import android.content.ComponentName;
import android.content.Context;
import android.content.Intent;
import android.content.ServiceConnection;
import android.graphics.Color;
import android.os.Bundle;
import android.os.IBinder;
import android.os.RemoteException;
import android.util.Log;
import android.view.View;
import android.view.ViewGroup;
import android.view.View.OnClickListener;
import android.widget.AbsoluteLayout;
import android.widget.Button;
import android.widget.LinearLayout;
import android.widget.RelativeLayout;
import android.widget.TextView;
import java.io.BufferedReader;
import java.io.File;
import java.io.FileOutputStream;
import java.io.FileReader;
import java.io.PrintWriter;
public class MyActivity extends Activity {
private Button btnOk;
private Button btnCancel;
@Override
public void onCreate(Bundle icicle) {
super.onCreate(icicle);
setContentView(R.layout.test_service);
btnOk = (Button)findViewById(R.id.btn_ok);
btnCancel = (Button)findViewById(R.id.btn_cancel);
btnOk.setText("Start Service");
btnCancel.setTag("Stop Service");
btnOk.setOnClickListener(new OnClickListener() {
public void onClick(View v) {
onOkClick();
}
});
btnCancel.setOnClickListener(new OnClickListener() {
public void onClick(View v) {
onCancelClick();
}
});
}
void onOkClick() {
Bundle args = new Bundle();
Intent intent = new Intent(this, MyService.class);
intent.putExtras(args);
//printf("send intent to start");
//startService(intent);
bindService(intent, mConnection, Context.BIND_AUTO_CREATE);
startService(intent);
}
void onCancelClick() {
Intent intent = new Intent(this, MyService.class);
//printf("send intent to stop");
unbindService(mConnection);
//stopService(intent);
}
private void printf(String str) {
Log.e("TAG", "###################------ " + str + "------");
}
ITaskBinder mService;
private ServiceConnection mConnection = new ServiceConnection() {
public void onServiceConnected(ComponentName className,
IBinder service) {
mService = ITaskBinder.Stub.asInterface(service);
try {
mService.registerCallback(mCallback);
} catch (RemoteException e) {
}
}
public void onServiceDisconnected(ComponentName className) {
mService = null;
}
};
private ITaskCallback mCallback = new ITaskCallback.Stub() {
public void actionPerformed(int id) {
printf("callback id=" + id);
}
};
}
package com.cmcc.demo;
interface ITaskCallback {
void actionPerformed(int actionId);
}
2. ITaskBinder.aidl
package com.cmcc.demo;
import com.cmcc.demo.ITaskCallback;
interface ITaskBinder {
boolean isTaskRunning();
void stopRunningTask();
void registerCallback(ITaskCallback cb);
void unregisterCallback(ITaskCallback cb);
}
3. MyService.java
package com.cmcc.demo;
import android.app.Service;
import android.content.Intent;
import android.os.IBinder;
import android.os.RemoteCallbackList;
import android.os.RemoteException;
import android.util.Log;
public class MyService extends Service {
@Override
public void onCreate() {
printf("service create");
}
@Override
public void onStart(Intent intent, int startId) {
printf("service start id=" + startId);
callback(startId);
}
@Override
public IBinder onBind(Intent t) {
printf("service on bind");
return mBinder;
}
@Override
public void onDestroy() {
printf("service on destroy");
super.onDestroy();
}
@Override
public boolean onUnbind(Intent intent) {
printf("service on unbind");
return super.onUnbind(intent);
}
public void onRebind(Intent intent) {
printf("service on rebind");
super.onRebind(intent);
}
private void printf(String str) {
Log.e("TAG", "###################------ " + str + "------");
}
void callback(int val) {
final int N = mCallbacks.beginBroadcast();
for (int i=0; i<N; i++) {
try { mCallbacks.getBroadcastItem(i).actionPerformed(val);
} catch (RemoteException e) {
// The RemoteCallbackList will take care of removing
// the dead object for us.
}
}
mCallbacks.finishBroadcast();
}
private final ITaskBinder.Stub mBinder = new ITaskBinder.Stub() {
public void stopRunningTask() {
}
public boolean isTaskRunning() {
return false;
}
public void registerCallback(ITaskCallback cb) {
if (cb != null) mCallbacks.register(cb);
}
public void unregisterCallback(ITaskCallback cb) {
if (cb != null) mCallbacks.unregister(cb);
}
};
final RemoteCallbackList<ITaskCallback> mCallbacks
= new RemoteCallbackList<ITaskCallback>();
}
4. MyActivity.java
package com.cmcc.demo;
import android.app.Activity;
import android.content.ComponentName;
import android.content.Context;
import android.content.Intent;
import android.content.ServiceConnection;
import android.graphics.Color;
import android.os.Bundle;
import android.os.IBinder;
import android.os.RemoteException;
import android.util.Log;
import android.view.View;
import android.view.ViewGroup;
import android.view.View.OnClickListener;
import android.widget.AbsoluteLayout;
import android.widget.Button;
import android.widget.LinearLayout;
import android.widget.RelativeLayout;
import android.widget.TextView;
import java.io.BufferedReader;
import java.io.File;
import java.io.FileOutputStream;
import java.io.FileReader;
import java.io.PrintWriter;
public class MyActivity extends Activity {
private Button btnOk;
private Button btnCancel;
@Override
public void onCreate(Bundle icicle) {
super.onCreate(icicle);
setContentView(R.layout.test_service);
btnOk = (Button)findViewById(R.id.btn_ok);
btnCancel = (Button)findViewById(R.id.btn_cancel);
btnOk.setText("Start Service");
btnCancel.setTag("Stop Service");
btnOk.setOnClickListener(new OnClickListener() {
public void onClick(View v) {
onOkClick();
}
});
btnCancel.setOnClickListener(new OnClickListener() {
public void onClick(View v) {
onCancelClick();
}
});
}
void onOkClick() {
Bundle args = new Bundle();
Intent intent = new Intent(this, MyService.class);
intent.putExtras(args);
//printf("send intent to start");
//startService(intent);
bindService(intent, mConnection, Context.BIND_AUTO_CREATE);
startService(intent);
}
void onCancelClick() {
Intent intent = new Intent(this, MyService.class);
//printf("send intent to stop");
unbindService(mConnection);
//stopService(intent);
}
private void printf(String str) {
Log.e("TAG", "###################------ " + str + "------");
}
ITaskBinder mService;
private ServiceConnection mConnection = new ServiceConnection() {
public void onServiceConnected(ComponentName className,
IBinder service) {
mService = ITaskBinder.Stub.asInterface(service);
try {
mService.registerCallback(mCallback);
} catch (RemoteException e) {
}
}
public void onServiceDisconnected(ComponentName className) {
mService = null;
}
};
private ITaskCallback mCallback = new ITaskCallback.Stub() {
public void actionPerformed(int id) {
printf("callback id=" + id);
}
};
}
发表评论
-
eclipse中安装插件地址
2014-03-07 15:08 761http://subclipse.tigris.org/up ... -
ubuntu13下载android源码
2014-02-27 18:23 644一、注意repo的正确地址 repo:curl " ... -
用例无法运行,报如下错:Exception during suite construction
2014-02-26 15:47 1274一 前提 1、 测试工程中的所有参数已配置好,如ins ... -
dx.jar dx.bat
2013-06-17 19:33 2267Android SDK中dx.jar, dx.bat文件的备份 ... -
Please ensure that adb is correctly located..... 问题
2013-04-16 09:44 972解决方法: 方法一、查毒杀毒,也许了病毒占用了adb ... -
PC端通过adb与设备端通信
2013-03-28 09:36 1526adb 全称Android Debug Bri ... -
Unable to execute dex: Multiple dex files define Lorg/taptwo/android/widget/Circ
2013-02-21 15:07 2586问题:[2013-02-21 15:01:02 - Dex ... -
android viewTree and decorView
2013-01-30 13:55 1702Android ViewTree and DecorView ... -
No active compatible AVD's or devices found. Relaunch this configuration after c
2013-01-29 10:56 8765问题:No active compatible AVD's ... -
代码对比工具
2013-01-24 15:33 658windows: http://www.scooterso ... -
android最新源码下载
2013-01-23 09:57 1054源码下载:https://source.android.co ... -
Run MonkeyTalk Scripts via Ant in Windows
2012-12-18 20:24 1288Run MonkeyTalk Scripts via ... -
Android中cpu,memory,Battery的计算
2012-11-20 19:59 66161 Memory的分配(RAM而非ROM) 网址: •ht ... -
http://code.taobao.org/p/TMTS/src/
2012-10-12 17:38 1036http://code.taobao.org/p/TMTS/s ... -
string.xml文件中的特殊符号转换符
2012-09-24 09:09 783strings.xml文件中需要对特殊符号(如%,'等)进行转 ... -
web server 中设置wifi代理
2012-09-24 09:07 901DefaultHttpClient httpClient = ... -
Android开发一些常见问题
2012-09-24 09:06 7481:当追踪问题时,代码中实在找不出问题所以,代码的逻辑完全正确 ... -
将log信息写入sdcard
2012-07-05 17:14 877File mFile; private void write ... -
string.xml文件中的特殊符号转换符
2012-06-19 19:39 1062strings.xml文件中需要对特殊符号(如%,'等)进行转 ... -
关于popupWindow的dismiss
2012-06-17 16:13 8596View contentView = LayoutInflat ...
相关推荐
**Android Interface Definition Language (AIDL) 代码示例解析** 在Android开发中,当需要在应用程序的不同组件之间进行跨进程通信(IPC,Inter-Process Communication)时,AIDL(Android Interface Definition ...
标题"aidl使用示例代码"所指的,就是展示了一个实际的AIDL使用案例,帮助开发者理解如何在项目中应用AIDL。这个示例可能包括以下几个关键部分: 1. **定义AIDL接口**: 在一个`.aidl`文件中,开发者定义了服务需要...
这个“Android AIDL示例代码.zip”压缩包中包含了丰富的示例和解释,旨在帮助开发者更好地理解和运用AIDL。 AIDL的基本概念: 1. **接口定义**:AIDL用于定义接口,这些接口描述了服务提供的方法。接口定义文件以`....
本示例代码将展示如何使用AIDL来创建服务并进行进程间的交互。 首先,我们需要了解AIDL的基本概念。AIDL定义了一种接口,它类似于Java接口,但增加了类型安全和进程边界的支持。当你在AIDL文件中声明一个方法,...
本示例"跨进程访问 aidl 客户端示例"正是为了演示如何运用AIDL来实现这一功能。 首先,AIDL的基本概念是定义一个接口文件,这个接口文件包含了客户端和服务端需要共享的方法声明。这些方法声明遵循Java语法,但有...
本示例代码"AIDL简单的示例代码"旨在展示如何在Android项目中使用AIDL。首先,我们需要创建一个AIDL文件,它以`.aidl`为扩展名。例如,我们可能会创建一个名为`ICalculator.aidl`的文件,内容如下: ```aidl ...
在这个"AIDLDemo"的代码示例中,我们将探讨如何通过AIDL来创建服务端(Server)和客户端(Client),以及如何进行权限检测,以确保安全的跨进程数据交换。** ### 1. AIDL基本概念 AIDL允许你在Android应用中定义一...
本示例代码包含"Server.zip"和"Client.zip"两个部分,分别代表服务端和服务客户端,通过AIDL展示了如何在Android中实现服务间的通信,并且还涵盖了如何传递对象。 1. **AIDL基础**:AIDL文件本质上是接口定义文件,...
本示例代码将探讨如何在Android应用中使用Service和AIDL。 1. **Service基础** - **Service生命周期**:Service有其特定的生命周期,包括onCreate(), onStartCommand(), onBind(), onRebind(), onUnbind(), 和 ...
本示例代码包括服务端(AIDLService)和客户端(AIDLClient)的实现,以详细展示AIDL的工作流程。** ### AIDL的基本概念 1. **接口定义**: 在AIDL中,你需要创建一个`.aidl`文件,定义服务提供的接口。接口中的方法...
这个"AIDL使用示例Demo"是帮助开发者理解和实践AIDL的一个实例项目。 首先,我们需要理解AIDL的基本概念。AIDL文件定义了接口,这个接口是客户端和服务端进行通信的合同。它使用类似于Java的方法签名来声明方法,...
2. **代码复杂性**:引入AIDL会增加代码量,尤其是处理数据类型的序列化和反序列化。 3. **生命周期管理**:服务端需妥善处理 Binder 对象的生命周期,防止内存泄漏。 **AIDL使用注意事项** 1. **数据类型限制**:...
示例代码: 服务端: ```java public class AidlService extends Service { private IAidlInterface.Stub binder = new IAidlInterface.Stub() { @Override public String doSomething(String input) throws ...
在提供的文件`AIDLClient.zip`和`AIDLServer.zip`中,我们可以看到一个简单的AIDL服务示例: 1. **AIDLServer**:这是服务端应用,它包含一个实现了AIDL接口的服务。服务端需要做以下几步: - 定义AIDL接口:例如`...
本示例提供了AIDL的实际应用,包括服务端和客户端两个工程,通过一个简单的求和功能来展示AIDL的工作原理。** ### 1. AIDL简介 AIDL 是 Android 平台上用于在不同进程间定义接口的工具,它允许应用程序组件在不同的...
在这个"AIDL客户端和服务端代码示例"中,我们将深入探讨如何使用AIDL来构建服务端和客户端,以及它们之间的交互流程。 首先,理解AIDL的基本概念。AIDL文件是一种接口定义文件,它使用类似Java的语法来声明方法,...
在本示例中,我们将探讨"AIDL简单使用"的代码实践。 首先,我们需要了解AIDL的基本结构。AIDL文件是`.aidl`格式,它定义了一个接口,该接口包含了服务和客户端之间可以调用的方法。下面是一个简单的AIDL接口示例: ...
压缩包中的`Servicetest_android_studio.zip`和`Servicetest_eclipse.zip`可能包含了完整的Service和AIDL开发示例。这些示例可能包括了Service的实现、AIDL接口的定义以及如何在客户端调用服务端的方法。解压后,你...
AIDL binder 在studio学习示例 在studio上创建AIDLservice 在studio上创建AIDLclient 两个project通过AIDL binder示例 AIDLservice打印 E onStart: ---- E attemptToBindService: ---- E -new----------...