【发布时间】:2014-01-16 22:50:18
【问题描述】:
我有一个调用 LocationHelper 来获取用户位置的服务
LocationWorker locationTask = new LocationWorker();
locationTask .execute(new Boolean[] {true});
class LocationWorker extends AsyncTask<Boolean, Integer, Boolean> {
@Override
protected void onPreExecute() {}
@Override
protected void onPostExecute(Boolean result) {
/* Here you can call myLocationHelper.getLat() and myLocationHelper.getLong() to get the location data.*/
latitude= = myLocationHelper.getLat();
longitude= = myLocationHelper.getLong();
= }
@Override
protected Boolean doInBackground(Boolean... params) {
//while the location helper has not got a lock
while(myLocationHelper.gotLocation() == false){
//do nothing, just wait
}
//once done return true
return true;
}
}
这在 Activity 中运行良好,但我试图从 A Service 中运行它
*我收到此错误并崩溃 *
01-16 22:31:57.854: W/dalvikvm(23413): threadid=11: thread exiting with uncaught exception (group=0x41f42700)
01-16 22:31:57.869: E/AndroidRuntime(23413): FATAL EXCEPTION: AsyncTask #1
01-16 22:31:57.869: E/AndroidRuntime(23413): java.lang.RuntimeException: An error occured while executing doInBackground()
01-16 22:31:57.869: E/AndroidRuntime(23413): at android.os.AsyncTask$3.done(AsyncTask.java:299)
01-16 22:31:57.869: E/AndroidRuntime(23413): at java.util.concurrent.FutureTask.finishCompletion(FutureTask.java:352)
01-16 22:31:57.869: E/AndroidRuntime(23413): at java.util.concurrent.FutureTask.setException(FutureTask.java:219)
01-16 22:31:57.869: E/AndroidRuntime(23413): at java.util.concurrent.FutureTask.run(FutureTask.java:239)
01-16 22:31:57.869: E/AndroidRuntime(23413): at android.os.AsyncTask$SerialExecutor$1.run(AsyncTask.java:230)
01-16 22:31:57.869: E/AndroidRuntime(23413): at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1080)
01-16 22:31:57.869: E/AndroidRuntime(23413): at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:573)
01-16 22:31:57.869: E/AndroidRuntime(23413): at java.lang.Thread.run(Thread.java:841)
01-16 22:31:57.869: E/AndroidRuntime(23413): Caused by: java.lang.NullPointerException
谢谢
【问题讨论】:
-
也许你有同样的问题:stackoverflow.com/questions/19825256/… 而且我不相信忙碌的等待是好的也不是必要的
-
谢谢,我忘记了 myLocationHelper = new LocationHelper(this);
标签: android android-asynctask android-service