这是我的代码:
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导入所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)