Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/180.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android 在onResume中调用服务时发生NullPointerException_Android_Service_Binding - Fatal编程技术网

Android 在onResume中调用服务时发生NullPointerException

Android 在onResume中调用服务时发生NullPointerException,android,service,binding,Android,Service,Binding,我试图调用服务,并根据响应将用户重定向到其他活动(登录) 如果我等到按钮点击后才执行此操作,则它工作正常(因为服务已绑定),但如果我在Resume上执行此操作,则会出现以下异常: ERROR/AndroidRuntime(2226): FATAL EXCEPTION: main java.lang.RuntimeException: Unable to resume activity {...MyActivity}: java.lang.NullPointerExcep

我试图调用服务,并根据响应将用户重定向到其他活动(登录)

如果我等到按钮点击后才执行此操作,则它工作正常(因为服务已绑定),但如果我在Resume上执行此操作,则会出现以下异常:

ERROR/AndroidRuntime(2226): FATAL EXCEPTION: main
    java.lang.RuntimeException: Unable to resume activity {...MyActivity}: 
        java.lang.NullPointerException
我的代码是:

FooService fooService;

@Override
protected void onStart() {
    super.onStart();

    Intent intent = new Intent(this, FooService.class);
    bindService(intent, fooServiceConnection, Context.BIND_AUTO_CREATE);
}

@Override
protected void onResume() {
   //I would assume the service would have bound by now?
   super.onResume();
   doSomething();
}

是什么让你认为
fooService
存在于
onResume()

bindService()
的调用是异步的。当它发生的时候,它就会发生。在调用
onServiceConnected()
之前,您无法
doSomething()
,并且在调用
onResume()
时可能尚未调用
onServiceConnected()


而且,如果
fooService
上的
get()
正在进行网络I/O,您需要重写应用程序,将其从主应用程序线程转移到后台线程。

是什么让您认为
fooService
存在于
onResume()

bindService()
的调用是异步的。当它发生的时候,它就会发生。在调用
onServiceConnected()
之前,您无法
doSomething()
,并且在调用
onResume()
时可能尚未调用
onServiceConnected()


而且,如果
fooService
上的
get()
正在进行网络I/O,您需要重新编写应用程序,将其从主应用程序线程转移到后台线程。

@UBM:如果您来自Javascript背景,那么PhoneGap可能是您更好的选择。“它正在进行网络I/O…你能提供一些资源来帮助我吗?”--这里有一个
IntentService
,它接收下载文件的命令,然后下载文件,并在下载完成后让活动知道结果:“如果我依赖于该服务,我如何在它准备好时调用它?”--从
onServiceConnected()
@UBM调用它:如果你有Javascript背景,也许PhoneGap对你来说是一个更好的选择。“它正在进行网络I/O…你能提供一些资源来帮助我吗?”--这里有一个
IntentService
,它接收下载文件的命令,然后下载文件,并在下载完成后让活动知道结果:“如果我依赖于该服务,我如何在它准备好时调用它?”--从服务连接()上的
调用它。