android aidl导入

android aidl导入,第1张

概述我正在尝试将 android.content.Context导入AIDL文件,但是eclipse无法识别它. 这是我的代码: package nsip.net;import android.content.Context; // error couldn't find import for class ...interface IMyContactsService{void print 我正在尝试将 android.content.Context导入AIDL文件,但是eclipse无法识别它.

这是我的代码:

package nsip.net;import androID.content.Context; // error Couldn't find import for class ...interface IMyContactsService{voID printToast(Context context,String text);}

谁能帮我?

解决方法 使用androID.content.Context是行不通的,因为它没有实现androID.os.Parcelable.

但是 – 如果你想在AIDL接口(实际上实现Parcelable)中传输一个类(例如MyExampleParcelable),你可以创建一个.aIDl文件,MyExampleParcelable.aIDl,你可以在其中编写:

package the.package.where.the.class.is;parcelable MyExampleParcelable;

现在,除非你拼命想要跨流程讨论,否则你应该考虑本地服务.
编辑(稍微有用):

这是本地服务(即它只会在您自己的应用程序和流程中使用)吗?在这些情况下,通常只需更好地实现绑定并直接返回.

public class SomeService extends Service {    ....    ....    public class SomeServiceBinder extends Binder {        public SomeService getSomeService() {            return SomeService.this;        }    }    private final IBinder mBinder = new SomeServiceBinder();    @OverrIDe    public IBinder onBind(Intent intent) {        return mBinder;    }    public voID printToast(Context context,String text) {        // Why are you even passing Context here? A Service can create Toasts by it self.        ....        ....    }    // And all other methods you want the caller to be able to invoke on    // your service.}

基本上,当Activity绑定到您的服务时,它将简单地将生成的IBinder强制转换为SomeService.someServiceBinder,调用SomeService.someServiceBinder#getSomeService() – 并且bang,访问正在运行的Service实例,您可以在其API中调用stuff.

总结

以上是内存溢出为你收集整理的android aidl导入全部内容,希望文章能够帮你解决android aidl导入所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/web/1129731.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-05-30
下一篇 2022-05-30

发表评论

登录后才能评论

评论列表(0条)

保存