2017-02-05 5 views
0

Теперь я пытаюсь использовать приложение для определения местоположения Android, но в этом исходном коде я обнаружил, что я не могу расширять AsyncTask, хотя я импортирую библиотеку.Ошибка при расширении AsyncTask

Этот код можно найти в других комментариях, которые я пробовал и показывал ошибки.

Error:(90, 5) error: LocServ.SendToServer is not abstract and does not override abstract method doInBackground(String...) in AsyncTask


package com.example.user.locserv; 
import android.app.Activity; 
import android.support.annotation.Nullable; 
import android.support.v7.app.AppCompatActivity; 
import android.os.Bundle; 
import android.app.IntentService; 
import android.app.Service; 
import android.content.Context; 
import android.content.Intent; 
import android.location.Location; 
import android.location.LocationListener; 
import android.location.LocationManager; 
import android.os.AsyncTask; 
import android.os.Handler; 
import android.os.IBinder; 
import android.os.Looper; 
import android.os.SystemClock; 
import android.util.Log; 
import android.widget.Toast; 
import org.apache.http.message.BasicNameValuePair; 
import org.apache.http.NameValuePair; 
import org.json.JSONObject; 
import java.util.ArrayList; 
import java.util.List; 
import java.util.Timer; 
import java.util.TimerTask; 
import android.support.v4.app.FragmentActivity; 

public class LocServ extends Service implements LocationListener { 
    private static String url_insert_location = "http://172.20.10.4/testing/insert.php"; 
    public static String LOG = "Log"; 

    JSONObject jsonParser = new JSONObject(); 

    private Context mContext; 

    boolean isGPSEnabled = false; 
    boolean isNetworkEnabled = false; 
    boolean canGetLocation = false; 
    Location location; 
    double latitude; 
    double longitude; 

    private static final long MIN_DISTANCE_CHANGE_FOR_UPDATES = 0; 

    private static final long MIN_TIME_BW_UPDATES = 1000; 

    protected LocationManager locationManager; 

    public LocServ(Context context) { 
     this.mContext = context; 
    } 

    public LocServ() { 
     super(); 
     mContext = LocServ.this; 
    } 


    @Nullable 
    @Override 
    public IBinder onBind(Intent intent) { 
     return null; 
    } 

    @Override 
    public int onStartCommand(Intent intent, int flags, int startId) { 
     Toast.makeText(this, "service starting", Toast.LENGTH_SHORT).show(); 
     Log.i(LOG, "Service started"); 
     Log.i("asd", "This is sparta"); 

     new SendToServer().execute(Double.toString(getLocation().getLongitude()), Double.toString(getLocation().getLatitude())); 
     return START_STICKY; 
    } 

    @Override 
    public void onCreate() { 
     super.onCreate(); 
     Log.i(LOG, "Service created"); 

    } 

    @Override 
    public void onDestroy() { 
     super.onDestroy(); { 
      Log.i(LOG, "Service destroyed"); 
     } 
    } 

    class SendToServer extends AsyncTask<String,String,String> { 
     @Override 
     protected String doInBackGround(String... la) { 
      try { 
       Log.i("string", la[0]); 
       String longi = la[0]; 
       String lati = la[1]; 

       Log.d("value", lati); 
       Log.d("value", longi); 
       ArrayList<NameValuePair> params = new ArrayList<NameValuePair>(); 
       params.add(new BasicNameValuePair("longitude", longi)); 
       params.add(new BasicNameValuePair("latitude", lati)); 

       JSONObject json = jsonParser.makeHttpRequest(url_insert_location, "POST", params); 
       Log.d("Create Response", json.toString()); 
      } catch (Exception e) { 
       Log.i("error", e.toString()); 
      } 
      return "call"; 
     } 

    } 

    public Location getLocation(){ 
     try{ 
      locationManager= (LocationManager) mContext.getSystemService(LOCATION_SERVICE); 
      isGPSEnabled=locationManager.isProviderEnabled(LocationManager.GPS_PROVIDER); 
      isNetworkEnabled=locationManager.isProviderEnabled(LocationManager.NETWORK_PROVIDER); 

      if(!isGPSEnabled && !isNetworkEnabled){ 

      } 
      else{ 
       this.canGetLocation=true; 
        if(isNetworkEnabled){ 

         locationManager.requestLocationUpdates(
           LocationManager.NETWORK_PROVIDER,MIN_TIME_BW_UPDATES,MIN_DISTANCE_CHANGE_FOR_UPDATES, 
           this); 
         Log.d("Network","Network"); 
         if(locationManager != null){ 
          location=locationManager.getLastKnownLocation(LocationManager.NETWORK_PROVIDER); 
          if(location != null){ 
           latitude=location.getLatitude(); 
           longitude=location.getLongitude(); 
          } 
         } 
        } 
       if(isGPSEnabled){ 
        if(location==null){ 
         locationManager.requestLocationUpdates(LocationManager.GPS_PROVIDER,MIN_TIME_BW_UPDATES,MIN_DISTANCE_CHANGE_FOR_UPDATES,this); 
         Log.d("GPS Enabled","GPS Enalbled"); 
         if(locationManager!=null){ 
          location=locationManager.getLastKnownLocation(LocationManager.GPS_PROVIDER); 
          if(location!=null){ 
           latitude=location.getLatitude(); 
           longitude=location.getLongitude(); 
          } 
         } 
        } 
       } 
      } 

     }catch (Exception e){ 
      e.printStackTrace(); 
     } 
     return location; 

    } 

    @Override 
    public void onLocationChanged(Location location) { 
     new SendToServer().execute(Double.toString(getLocation().getLongitude()),Double.toString(getLocation().getLatitude())); 

    } 

    @Override 
    public void onStatusChanged(String provider, int status, Bundle extras) { 

    } 

    @Override 
    public void onProviderEnabled(String provider) { 

    } 

    @Override 
    public void onProviderDisabled(String provider) { 

    } 
} 
+0

Где вы используете этот код, пожалуйста, добавьте полный код ~ – W4R10CK

+0

Вот код –

+0

Какова ошибка при расширении Asynctask? – W4R10CK

ответ

2

Relpace это:

doInBackGround  // [g] does not start with capital letter 

С этим:.

doInBackground 
+0

Спасибо, я обнаружил, что –

+0

@AtefHares, Хороший человек. +1 от меня! – W4R10CK

+0

Я могу расширить его, но есть еще одна ошибка, которая находится в JSONObject json = jsonParser.makeHttpRequest (url_insert_location, «POST», params); –