Bindservice给出nullpointerexception,并且永远不会调用onserviceconnected

时间:2013-04-13 23:53:18

标签: android service nullpointerexception

首先让我说我现在谷歌搜索超过两个小时了,我似乎无法找到任何解决这个问题的方法。在SO上发现了很多类似的问题,但迄今为止没有一个解决方案有效。

我的情况是这样的: 我有通过调用startservice()启动的服务(jobcrawler)。 在这个服务中,我正在启动一个长时间运行的线程,它在某个时候调用一个类(webservice),它的init看起来像这样:

public webservice(Context context) {
    this.context = context;
    this.db = new DatabaseHandler(this.context);
    this.access_token = db.getAuthKey();
}

在一些网络调用之后,类(webservice)在名为recieveData()的方法中接收数据。 在recieveData内部我试图绑定到服务,如下所示:

        if(!isBound){
            //If we're not bound yet, then bind to the service.
            Intent intent = new Intent(this, jobcrawler.class);
            bindService(intent, myConnection, Context.BIND_AUTO_CREATE);
        }

现在,我在调用bindservice的行上获得了nullpointerexemption。请注意,我实际上并没有尝试使用该服务。我只是想绑定它。 任何帮助将不胜感激...如果我有头发我会把它拉出来!大声笑

这是我认为相关的一些额外代码。 myConnection:

private ServiceConnection myConnection = new ServiceConnection() {
    public void onServiceConnected(ComponentName className,IBinder service) {
        Log.e("webservice", "service is connected");
        MyLocalBinder binder = (MyLocalBinder) service;
        myService = binder.getService();
        isBound = true;
    }

    public void onServiceDisconnected(ComponentName arg0) {
        Log.e("webservice", "service is disconnected");
        isBound = false;
    }

};

来自服务的活页夹MyLocalBinder:

public class MyLocalBinder extends Binder {
    public jobcrawler getService() {   
            Log.e("Job Crawler", "returning self");
        return jobcrawler.this;
    }
}

服务的onbind方法:

private final IBinder myBinder = new MyLocalBinder();

@Override
public IBinder onBind(Intent arg0) {
  Log.d("JobCrawler Service", "Service is bound");
    return myBinder;
}

哦,这是我从服务中的线程加载类的地方,以防万一我应该使用不同的上下文或其他东西:

         private webservice ws= new webservice(getBaseContext());

1 个答案:

答案 0 :(得分:0)

我知道它有点晚了,但我遇到了同样的问题,也许一些googlers会很高兴:)

所以对我来说,以下工作: 在引用您的上下文时调用bindService方法:

context.bindService(intent, serviceConnection, Context.BIND_AUTO_CREATE)
相关问题