如何在AIDL中使用ResultReceiver

时间:2010-12-28 21:36:31

标签: android aidl

我想使用ResultReceiver在AIDL中声明一个异步服务API,而不是创建我自己的回调接口。

但是当我尝试导入android.os.ResultReceiver时,它不知道ResultReceiver是可以分配的。有诀窍吗?

示例:

import android.os.ResultReceiver;

interface IPrimeService {
    int computePrimes(in int number, in ResultReceiver resultReceiver);
}

结果(Android 2.2):

IPrimeService.aidl:3: couldn't find import for class android.os.ResultReceiver

似乎我在我的项目中的src / android / os中创建了ResultReceiver.aidl,如:

package android.os;

parcelable ResultReceiver;

它有效,但这看起来像是一个黑客。还有更好的方法吗?

谢谢,Eric

1 个答案:

答案 0 :(得分:2)

我遇到了类似的问题..我编辑了/platform/android-<#>/framework.aidl以包含该行

parceable android.os.ResultReceiver;

然后它起作用

信用:http://amdroid.ampache.org/?p=38