2011-12-03 17 views
2

私はGPSの場所を聞くためのサービスを持っていて、Toastに更新された場所を表示したいと思うので、ボタンをクリックして他のアクティビティでサービスを実行します。サービスは正常に作成されますが、更新された場所のトーストは表示されません。ここにコード:サービスを使用してGPSをバックグラウンドで追跡する

public class locationlistening_service extends Service implements LocationListener { 

    static LocationManager locationManager; 
    LocationListener locationListener; 

    private static final String TAG = "Calculations"; 
    @Override 
    public void onCreate() { 
     Toast.makeText(this, "My Service Created", Toast.LENGTH_LONG).show(); 
     Log.d(TAG, "onCreate"); 
     run(); 
    } 

    private void run(){ 

     final Criteria criteria = new Criteria(); 

     criteria.setAccuracy(Criteria.ACCURACY_FINE); 
     criteria.setSpeedRequired(true); 
     criteria.setAltitudeRequired(false); 
     criteria.setBearingRequired(false); 
     criteria.setCostAllowed(true); 
     criteria.setPowerRequirement(Criteria.POWER_LOW); 
     //Acquire a reference to the system Location Manager 
     locationManager = (LocationManager) this.getSystemService(Context.LOCATION_SERVICE); 
     // Define a listener that responds to location updates 
     locationListener = new LocationListener() { 
       public void onLocationChanged(Location location) 
       { 
       recordLocation(location); 
       } 

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

       public void onProviderEnabled(String provider) {} 

       public void onProviderDisabled(String provider) {} 

     }; 
    } 
public void recordLocation(Location loc) 
{ 
Toast.makeText(locationlistening_service.this,"Lat: " + String.valueOf(loc.getLatitude()) + " Long: " + String.valueOf(loc.getLongitude()),Toast.LENGTH_SHORT).show(); 

} 



    public void onLocationChanged(Location location) { 
     // TODO Auto-generated method stub 

    } 

    public void onProviderDisabled(String provider) { 
     // TODO Auto-generated method stub 

    } 

    public void onProviderEnabled(String provider) { 
     // TODO Auto-generated method stub 

    } 



    @Override 
    public IBinder onBind(Intent intent) { 
     // TODO Auto-generated method stub 
     return null; 
    } 

    @Override 
    public void onStatusChanged(String provider, int status, Bundle extras) { 
     // TODO Auto-generated method stub 

    } 

     } 

他の活動ではサービスコールがあります。

public void startButton(View view) { 

    startService(new Intent(this, locationlistening_service.class)); 
} 
+0

@THelper私を呼び出すためにありがとう、私はこの次回の世話をします。 – Deverloper

答えて

1

あなたは決してrequestLocationUpdates()に電話をかけません。したがって、あなたのLocationManager,LocationListener、またはCriteriaは何も使用していません。

このサービスは、不要になった時点で必ず終了してください。

関連する問題