Android 如何在AlarmManager运行的Serivce类上正确运行异步任务

Android 如何在AlarmManager运行的Serivce类上正确运行异步任务,android,android-asynctask,android-service,alarmmanager,Android,Android Asynctask,Android Service,Alarmmanager,我正在运行一个AlarmManager,它使用以下命令每隔x秒触发一次Serivce: Intent intent = new Intent(AndroidGPSTrackingActivity.this, AppService.class); PendingIntent sender = PendingIntent.getService(AndroidGPSTrackingActivity.this, 0, intent, 0);

我正在运行一个
AlarmManager
,它使用以下命令每隔
x秒触发一次
Serivce

Intent intent = new Intent(AndroidGPSTrackingActivity.this,
        AppService.class);
PendingIntent sender =
        PendingIntent.getService(AndroidGPSTrackingActivity.this,
                0, intent, 0);

AlarmManager am = (AlarmManager)
        getSystemService(ALARM_SERVICE);
am.cancel(sender);
服务类声明为: 清单中的

AppService.java:

public class AppService extends Service {
    GPSTracker gps;

    @Override
    public IBinder onBind(Intent intent) {
        // TODO: Return the communication channel to the service.
        throw new UnsupportedOperationException("Not yet implemented");
    }

    @Override
    public void onCreate() {
        // TODO Auto-generated method stub
        //Toast.makeText(getApplicationContext(), "Service Created", 1).show();
        super.onCreate();
    }

    @Override
    public void onDestroy() {
        // TODO Auto-generated method stub
        //Toast.makeText(getApplicationContext(), "Service Destroy", 1).show();
        super.onDestroy();
    }

    @Override
    public int onStartCommand(Intent intent, int flags, int startId) {
        // TODO Auto-generated method stub
        //Toast.makeText(getApplicationContext(), "Service Running ", 1).show();
        PowerManager pm = (PowerManager) this.getSystemService(this.POWER_SERVICE);
        PowerManager.WakeLock wl = pm.newWakeLock(PowerManager.PARTIAL_WAKE_LOCK, "");
        wl.acquire();

        gps = new GPSTracker(this);

        if (gps.canGetLocation()) {

            double latitude = gps.getLatitude();
            double longitude = gps.getLongitude();
            SendLocation SendLocation = new SendLocation();
            SendLocation.execute(latitude, longitude);
        } else {
            gps.showSettingsAlert();
        }
        wl.release();
        return super.onStartCommand(intent, flags, startId);
    }


}
public class SendLocation extends AsyncTask<Object, Void, Void> {//line 18
    private Double latitude, longitude;
    private String userName, password;
    GlobalClass Global = new GlobalClass();

    protected Void doInBackground(Object... params) {
        latitude = (Double) params[0];
        longitude = (Double) params[1];

        HttpClient httpclient = new DefaultHttpClient();
        HttpPost httppost = new HttpPost(Global.getHostServer());//line 28

        try {
            List<NameValuePair> nameValuePairs = new ArrayList<NameValuePair>(2);
            nameValuePairs.add(new BasicNameValuePair("strLat", Double
                    .toString(latitude)));
            nameValuePairs.add(new BasicNameValuePair("strLong", Double
                    .toString(longitude)));
            nameValuePairs.add(new BasicNameValuePair("userName", Global.getUserName()));
            nameValuePairs.add(new BasicNameValuePair("password", Global.getPassword()));
            httppost.setEntity(new UrlEncodedFormEntity(nameValuePairs));

            HttpResponse response = httpclient.execute(httppost);
            String responseStr = EntityUtils.toString(response.getEntity());

            Log.d("Response",responseStr);
        } catch (ClientProtocolException e) {
            // TODO Auto-generated catch block
        } catch (IOException e) {
            // TODO Auto-generated catch block
        }
        return null;
    }
}
    java.lang.RuntimeException: An error occured while executing doInBackground()
            at android.os.AsyncTask$3.done(AsyncTask.java:299)
            at java.util.concurrent.FutureTask$Sync.innerSetException(FutureTask.java:273)
            at java.util.concurrent.FutureTask.setException(FutureTask.java:124)
            at java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:307)
            at java.util.concurrent.FutureTask.run(FutureTask.java:137)
            at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1076)
            at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:569)
            at java.lang.Thread.run(Thread.java:856)
     Caused by: java.lang.NullPointerException
            at java.net.URI.parseURI(URI.java:353)
            at java.net.URI.<init>(URI.java:204)
            at java.net.URI.create(URI.java:725)
            at org.apache.http.client.methods.HttpPost.<init>(HttpPost.java:79)
            at com.example.gpstracking.SendLocation.doInBackground(SendLocation.java:28)
            at com.example.gpstracking.SendLocation.doInBackground(SendLocation.java:18)
            at android.os.AsyncTask$2.call(AsyncTask.java:287)
            at java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:305)
            at java.util.concurrent.FutureTask.run(FutureTask.java:137)
            at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1076)
            at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:569)
            at java.lang.Thread.run(Thread.java:856)
03-10 00:43:32.803    1693-1693/com.example.gpstracking E/Trace﹕ error opening trace file: No such file or directory (2)
03-10 00:43:32.979    1693-1708/com.example.gpstracking E/AndroidRuntime﹕ FATAL EXCEPTION: AsyncTask #2
    java.lang.RuntimeException: An error occured while executing doInBackground()
            at android.os.AsyncTask$3.done(AsyncTask.java:299)
            at java.util.concurrent.FutureTask$Sync.innerSetException(FutureTask.java:273)
            at java.util.concurrent.FutureTask.setException(FutureTask.java:124)
            at java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:307)
            at java.util.concurrent.FutureTask.run(FutureTask.java:137)
            at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1076)
            at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:569)
            at java.lang.Thread.run(Thread.java:856)
     Caused by: java.lang.NullPointerException
            at java.net.URI.parseURI(URI.java:353)
            at java.net.URI.<init>(URI.java:204)
            at java.net.URI.create(URI.java:725)
            at org.apache.http.client.methods.HttpPost.<init>(HttpPost.java:79)
            at com.example.gpstracking.SendLocation.doInBackground(SendLocation.java:28)
            at com.example.gpstracking.SendLocation.doInBackground(SendLocation.java:18)
            at android.os.AsyncTask$2.call(AsyncTask.java:287)
            at java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:305)
            at java.util.concurrent.FutureTask.run(FutureTask.java:137)
            at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1076)
            at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:569)
            at java.lang.Thread.run(Thread.java:856)
SendLocation.java:

public class AppService extends Service {
    GPSTracker gps;

    @Override
    public IBinder onBind(Intent intent) {
        // TODO: Return the communication channel to the service.
        throw new UnsupportedOperationException("Not yet implemented");
    }

    @Override
    public void onCreate() {
        // TODO Auto-generated method stub
        //Toast.makeText(getApplicationContext(), "Service Created", 1).show();
        super.onCreate();
    }

    @Override
    public void onDestroy() {
        // TODO Auto-generated method stub
        //Toast.makeText(getApplicationContext(), "Service Destroy", 1).show();
        super.onDestroy();
    }

    @Override
    public int onStartCommand(Intent intent, int flags, int startId) {
        // TODO Auto-generated method stub
        //Toast.makeText(getApplicationContext(), "Service Running ", 1).show();
        PowerManager pm = (PowerManager) this.getSystemService(this.POWER_SERVICE);
        PowerManager.WakeLock wl = pm.newWakeLock(PowerManager.PARTIAL_WAKE_LOCK, "");
        wl.acquire();

        gps = new GPSTracker(this);

        if (gps.canGetLocation()) {

            double latitude = gps.getLatitude();
            double longitude = gps.getLongitude();
            SendLocation SendLocation = new SendLocation();
            SendLocation.execute(latitude, longitude);
        } else {
            gps.showSettingsAlert();
        }
        wl.release();
        return super.onStartCommand(intent, flags, startId);
    }


}
public class SendLocation extends AsyncTask<Object, Void, Void> {//line 18
    private Double latitude, longitude;
    private String userName, password;
    GlobalClass Global = new GlobalClass();

    protected Void doInBackground(Object... params) {
        latitude = (Double) params[0];
        longitude = (Double) params[1];

        HttpClient httpclient = new DefaultHttpClient();
        HttpPost httppost = new HttpPost(Global.getHostServer());//line 28

        try {
            List<NameValuePair> nameValuePairs = new ArrayList<NameValuePair>(2);
            nameValuePairs.add(new BasicNameValuePair("strLat", Double
                    .toString(latitude)));
            nameValuePairs.add(new BasicNameValuePair("strLong", Double
                    .toString(longitude)));
            nameValuePairs.add(new BasicNameValuePair("userName", Global.getUserName()));
            nameValuePairs.add(new BasicNameValuePair("password", Global.getPassword()));
            httppost.setEntity(new UrlEncodedFormEntity(nameValuePairs));

            HttpResponse response = httpclient.execute(httppost);
            String responseStr = EntityUtils.toString(response.getEntity());

            Log.d("Response",responseStr);
        } catch (ClientProtocolException e) {
            // TODO Auto-generated catch block
        } catch (IOException e) {
            // TODO Auto-generated catch block
        }
        return null;
    }
}
    java.lang.RuntimeException: An error occured while executing doInBackground()
            at android.os.AsyncTask$3.done(AsyncTask.java:299)
            at java.util.concurrent.FutureTask$Sync.innerSetException(FutureTask.java:273)
            at java.util.concurrent.FutureTask.setException(FutureTask.java:124)
            at java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:307)
            at java.util.concurrent.FutureTask.run(FutureTask.java:137)
            at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1076)
            at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:569)
            at java.lang.Thread.run(Thread.java:856)
     Caused by: java.lang.NullPointerException
            at java.net.URI.parseURI(URI.java:353)
            at java.net.URI.<init>(URI.java:204)
            at java.net.URI.create(URI.java:725)
            at org.apache.http.client.methods.HttpPost.<init>(HttpPost.java:79)
            at com.example.gpstracking.SendLocation.doInBackground(SendLocation.java:28)
            at com.example.gpstracking.SendLocation.doInBackground(SendLocation.java:18)
            at android.os.AsyncTask$2.call(AsyncTask.java:287)
            at java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:305)
            at java.util.concurrent.FutureTask.run(FutureTask.java:137)
            at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1076)
            at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:569)
            at java.lang.Thread.run(Thread.java:856)
03-10 00:43:32.803    1693-1693/com.example.gpstracking E/Trace﹕ error opening trace file: No such file or directory (2)
03-10 00:43:32.979    1693-1708/com.example.gpstracking E/AndroidRuntime﹕ FATAL EXCEPTION: AsyncTask #2
    java.lang.RuntimeException: An error occured while executing doInBackground()
            at android.os.AsyncTask$3.done(AsyncTask.java:299)
            at java.util.concurrent.FutureTask$Sync.innerSetException(FutureTask.java:273)
            at java.util.concurrent.FutureTask.setException(FutureTask.java:124)
            at java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:307)
            at java.util.concurrent.FutureTask.run(FutureTask.java:137)
            at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1076)
            at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:569)
            at java.lang.Thread.run(Thread.java:856)
     Caused by: java.lang.NullPointerException
            at java.net.URI.parseURI(URI.java:353)
            at java.net.URI.<init>(URI.java:204)
            at java.net.URI.create(URI.java:725)
            at org.apache.http.client.methods.HttpPost.<init>(HttpPost.java:79)
            at com.example.gpstracking.SendLocation.doInBackground(SendLocation.java:28)
            at com.example.gpstracking.SendLocation.doInBackground(SendLocation.java:18)
            at android.os.AsyncTask$2.call(AsyncTask.java:287)
            at java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:305)
            at java.util.concurrent.FutureTask.run(FutureTask.java:137)
            at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1076)
            at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:569)
            at java.lang.Thread.run(Thread.java:856)
公共类SendLocation扩展了AsyncTask{//第18行
私人双纬度、经度;
私有字符串用户名、密码;
GlobalClass Global=新的GlobalClass();
受保护的Void doInBackground(对象…参数){
纬度=(双)参数[0];
经度=(双)参数[1];
HttpClient HttpClient=新的DefaultHttpClient();
HttpPost HttpPost=新的HttpPost(Global.getHostServer());//第28行
试一试{
List nameValuePairs=新的ArrayList(2);
添加(新的BasicNameValuePair(“strLat”,双精度)
.toString(纬度));
添加(新的BasicNameValuePair(“strLong”,双精度)
.toString(经度));
添加(新的BasicNameValuePair(“userName”,Global.getUserName());
添加(新的BasicNameValuePair(“密码”,Global.getPassword());
setEntity(新的UrlEncodedFormEntity(nameValuePairs));
HttpResponse response=httpclient.execute(httppost);
字符串responsest=EntityUtils.toString(response.getEntity());
Log.d(“响应”,responsest);
}捕获(客户端协议例外e){
//TODO自动生成的捕捉块
}捕获(IOE异常){
//TODO自动生成的捕捉块
}
返回null;
}
}
它工作了一段时间,然后突然我得到两个错误,一个在第18行,一个在第28行,然后最终。。。一股力量关闭了。知道我为什么要接近这支部队吗

更新: 当android在试图释放内存时自动关闭应用程序时,这是一个明确的强制关闭。如何解决此问题

LogCat:

public class AppService extends Service {
    GPSTracker gps;

    @Override
    public IBinder onBind(Intent intent) {
        // TODO: Return the communication channel to the service.
        throw new UnsupportedOperationException("Not yet implemented");
    }

    @Override
    public void onCreate() {
        // TODO Auto-generated method stub
        //Toast.makeText(getApplicationContext(), "Service Created", 1).show();
        super.onCreate();
    }

    @Override
    public void onDestroy() {
        // TODO Auto-generated method stub
        //Toast.makeText(getApplicationContext(), "Service Destroy", 1).show();
        super.onDestroy();
    }

    @Override
    public int onStartCommand(Intent intent, int flags, int startId) {
        // TODO Auto-generated method stub
        //Toast.makeText(getApplicationContext(), "Service Running ", 1).show();
        PowerManager pm = (PowerManager) this.getSystemService(this.POWER_SERVICE);
        PowerManager.WakeLock wl = pm.newWakeLock(PowerManager.PARTIAL_WAKE_LOCK, "");
        wl.acquire();

        gps = new GPSTracker(this);

        if (gps.canGetLocation()) {

            double latitude = gps.getLatitude();
            double longitude = gps.getLongitude();
            SendLocation SendLocation = new SendLocation();
            SendLocation.execute(latitude, longitude);
        } else {
            gps.showSettingsAlert();
        }
        wl.release();
        return super.onStartCommand(intent, flags, startId);
    }


}
public class SendLocation extends AsyncTask<Object, Void, Void> {//line 18
    private Double latitude, longitude;
    private String userName, password;
    GlobalClass Global = new GlobalClass();

    protected Void doInBackground(Object... params) {
        latitude = (Double) params[0];
        longitude = (Double) params[1];

        HttpClient httpclient = new DefaultHttpClient();
        HttpPost httppost = new HttpPost(Global.getHostServer());//line 28

        try {
            List<NameValuePair> nameValuePairs = new ArrayList<NameValuePair>(2);
            nameValuePairs.add(new BasicNameValuePair("strLat", Double
                    .toString(latitude)));
            nameValuePairs.add(new BasicNameValuePair("strLong", Double
                    .toString(longitude)));
            nameValuePairs.add(new BasicNameValuePair("userName", Global.getUserName()));
            nameValuePairs.add(new BasicNameValuePair("password", Global.getPassword()));
            httppost.setEntity(new UrlEncodedFormEntity(nameValuePairs));

            HttpResponse response = httpclient.execute(httppost);
            String responseStr = EntityUtils.toString(response.getEntity());

            Log.d("Response",responseStr);
        } catch (ClientProtocolException e) {
            // TODO Auto-generated catch block
        } catch (IOException e) {
            // TODO Auto-generated catch block
        }
        return null;
    }
}
    java.lang.RuntimeException: An error occured while executing doInBackground()
            at android.os.AsyncTask$3.done(AsyncTask.java:299)
            at java.util.concurrent.FutureTask$Sync.innerSetException(FutureTask.java:273)
            at java.util.concurrent.FutureTask.setException(FutureTask.java:124)
            at java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:307)
            at java.util.concurrent.FutureTask.run(FutureTask.java:137)
            at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1076)
            at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:569)
            at java.lang.Thread.run(Thread.java:856)
     Caused by: java.lang.NullPointerException
            at java.net.URI.parseURI(URI.java:353)
            at java.net.URI.<init>(URI.java:204)
            at java.net.URI.create(URI.java:725)
            at org.apache.http.client.methods.HttpPost.<init>(HttpPost.java:79)
            at com.example.gpstracking.SendLocation.doInBackground(SendLocation.java:28)
            at com.example.gpstracking.SendLocation.doInBackground(SendLocation.java:18)
            at android.os.AsyncTask$2.call(AsyncTask.java:287)
            at java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:305)
            at java.util.concurrent.FutureTask.run(FutureTask.java:137)
            at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1076)
            at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:569)
            at java.lang.Thread.run(Thread.java:856)
03-10 00:43:32.803    1693-1693/com.example.gpstracking E/Trace﹕ error opening trace file: No such file or directory (2)
03-10 00:43:32.979    1693-1708/com.example.gpstracking E/AndroidRuntime﹕ FATAL EXCEPTION: AsyncTask #2
    java.lang.RuntimeException: An error occured while executing doInBackground()
            at android.os.AsyncTask$3.done(AsyncTask.java:299)
            at java.util.concurrent.FutureTask$Sync.innerSetException(FutureTask.java:273)
            at java.util.concurrent.FutureTask.setException(FutureTask.java:124)
            at java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:307)
            at java.util.concurrent.FutureTask.run(FutureTask.java:137)
            at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1076)
            at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:569)
            at java.lang.Thread.run(Thread.java:856)
     Caused by: java.lang.NullPointerException
            at java.net.URI.parseURI(URI.java:353)
            at java.net.URI.<init>(URI.java:204)
            at java.net.URI.create(URI.java:725)
            at org.apache.http.client.methods.HttpPost.<init>(HttpPost.java:79)
            at com.example.gpstracking.SendLocation.doInBackground(SendLocation.java:28)
            at com.example.gpstracking.SendLocation.doInBackground(SendLocation.java:18)
            at android.os.AsyncTask$2.call(AsyncTask.java:287)
            at java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:305)
            at java.util.concurrent.FutureTask.run(FutureTask.java:137)
            at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1076)
            at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:569)
            at java.lang.Thread.run(Thread.java:856)
java.lang.RuntimeException:执行doInBackground()时出错
在android.os.AsyncTask$3.done(AsyncTask.java:299)
位于java.util.concurrent.FutureTask$Sync.innerSetException(FutureTask.java:273)
位于java.util.concurrent.FutureTask.setException(FutureTask.java:124)
位于java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:307)
位于java.util.concurrent.FutureTask.run(FutureTask.java:137)
位于java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1076)
位于java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:569)
运行(Thread.java:856)
原因:java.lang.NullPointerException
位于java.net.URI.parseURI(URI.java:353)
位于java.net.URI。(URI.java:204)
在java.net.URI.create(URI.java:725)
位于org.apache.http.client.methods.HttpPost.(HttpPost.java:79)
位于com.example.gpstracking.SendLocation.doInBackground(SendLocation.java:28)
位于com.example.gpstracking.SendLocation.doInBackground(SendLocation.java:18)
在android.os.AsyncTask$2.call(AsyncTask.java:287)
位于java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:305)
位于java.util.concurrent.FutureTask.run(FutureTask.java:137)
位于java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1076)
位于java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:569)
运行(Thread.java:856)
03-10 00:43:32.803 1693-1693/com.example.gpstracking E/Trace﹕ 打开跟踪文件时出错:没有此类文件或目录(2)
03-10 00:43:32.979 1693-1708/com.example.gpstracking E/AndroidRuntime﹕ 致命异常:异步任务#2
java.lang.RuntimeException:执行doInBackground()时出错
在android.os.AsyncTask$3.done(AsyncTask.java:299)
位于java.util.concurrent.FutureTask$Sync.innerSetException(FutureTask.java:273)
位于java.util.concurrent.FutureTask.setException(FutureTask.java:124)
位于java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:307)
位于java.util.concurrent.FutureTask.run(FutureTask.java:137)
位于java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1076)
位于java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:569)
运行(Thread.java:856)
原因:java.lang.NullPointerException
位于java.net.URI.parseURI(URI.java:353)
位于java.net.URI。(URI.java:204)
在java.net.URI.create(URI.java:725)
位于org.apache.http.client.methods.HttpPost.(HttpPost.java:79)
位于com.example.gpstracking.SendLocation.doInBackground(SendLocation.java:28)
位于com.example.gpstracking.SendLocation.doInBackground(SendLocation.java:18)
在android.os.AsyncTask$2.call(AsyncTask.java:287)
位于java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:305)
位于java.util.concurrent.FutureTask.run(FutureTask.java:137)
位于java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1076)
位于java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:569)
运行(Thread.java:856)

我在您的代码中看到的唯一奇怪的事情与您的AsyncTask的
参数有关。您的声明如下所示:

public class SendLocation extends AsyncTask<Object, Void, Void> 
public class SendLocation extends AsyncTask<Double, Void, Void> 
您应该更改异步任务的定义,如下所示:

public class SendLocation extends AsyncTask<Object, Void, Void> 
public class SendLocation extends AsyncTask<Double, Void, Void> 
公共类SendLocation扩展了异步任务

事实证明,在