在Android中绑定到服务的问题

时间:2012-09-11 14:44:03

标签: android binding android-service

我创建了一个名为LocalService的服务,我想绑定它,以便它可以执行某些操作并将结果返回给调用客户端。我一直试图让example of the android dev site工作,但是eclipse在这个方法上给出了编译时错误:

void doBindService() {
    // Establish a connection with the service. We use an explicit
    // class name because we want a specific service implementation that
    // we know will be running in our own process (and thus won't be
    // supporting component replacement by other applications).
    bindService(new Intent(Binding.this, LocalService.class), mConnection, Context.BIND_AUTO_CREATE);
    mIsBound = true;
}

“Binding.this”下面有一条红线,eclipse给了我:绑定无法解析为某种类型。我该怎么办?

2 个答案:

答案 0 :(得分:5)

只需删除Binding,代码应如下所示:

bindService(new Intent(this, LocalService.class), mConnection, Context.BIND_AUTO_CREATE);

Intent构造函数的第一个参数是Context。如果从Activity类中调用它,则上面的代码将起作用(Activity的任何实例也是Context)。如果没有,您可以随时使用应用程序上下文

答案 1 :(得分:1)

看起来Binding只是你放入doBindService()的类名(很可能是Activity?)。如果您的课程被命名,则将其重命名为Binding或将所有Binding.this替换为MyClass.this或仅this