在我的應用程序我運行的服務工作正常,但問題是當我打開任何應用程序,如什麼應用程序,臉書等 。再次我的服務啓動新鮮如何克服這個問題如何停止一個應用程序的服務,而我們正在使用另一個應用程序在Android
這是我的代碼,大家好:
public class GpsTracker extends Service implements LocationListener {
Intent intent1;
LocationManager locationManager;
public double latitude, longitude;
String Lat,Log,stringFromFragment,add,time;
Geocoder geocoder;
DBHelper dbh;
StringBuilder strReturnedAddress;
StausEventDao stausEventDao;
Context context;
int minutes=15*60000;
@Override
public void onCreate()
{
super.onCreate();
locationManager = (LocationManager) getSystemService(Context.LOCATION_SERVICE);
intent1 = new Intent("com.ds.service");
Toast.makeText(this, "Starting Tracker", Toast.LENGTH_SHORT).show();
if (locationManager.isProviderEnabled(LocationManager.GPS_PROVIDER)) {
locationManager.requestLocationUpdates(LocationManager.GPS_PROVIDER, 900000, 1, this);
} else if (locationManager.isProviderEnabled(LocationManager.NETWORK_PROVIDER)) {
locationManager.requestLocationUpdates(LocationManager.NETWORK_PROVIDER, 900000, 1, this);
} else {
Toast.makeText(this, "Enable gps to get location", Toast.LENGTH_SHORT).show();
}
}
@Override
public int onStartCommand(Intent intent, int flags, int startId)
{
if(intent !=null) {
stringFromFragment = intent.getStringExtra("STATUS");
}
return START_STICKY;
}
@Override
public void onLocationChanged(Location location) {
/* if (locationManager.isProviderEnabled(LocationManager.GPS_PROVIDER)) {
locationManager.requestLocationUpdates(LocationManager.GPS_PROVIDER, 10000, 1, this);
} else if (locationManager.isProviderEnabled(LocationManager.NETWORK_PROVIDER)) {
locationManager.requestLocationUpdates(LocationManager.NETWORK_PROVIDER, 10000, 1, this);
} else {
Toast.makeText(this, "Enable gps to get location", Toast.LENGTH_SHORT).show();
}*/
latitude = location.getLatitude();
longitude = location.getLongitude();
context=getApplicationContext();
Lat = String.valueOf(latitude);
Log = String.valueOf(longitude);
geocoder = new Geocoder(this, Locale.ENGLISH);
try {
List<Address> addresses = geocoder.getFromLocation(latitude, longitude, 1);
if (addresses != null) {
Address returnedAddress = addresses.get(0);
strReturnedAddress = new StringBuilder("");
strReturnedAddress.append(returnedAddress.getAddressLine(1)).append("\n");
add = strReturnedAddress.toString();
}
} catch (IOException e)
{
e.printStackTrace();
Toast.makeText(getApplicationContext()," Cannot get Address! ", Toast.LENGTH_LONG).show();
}
dbh = new DBHelper(getApplicationContext());
dbh.getReadableDatabase();
stausEventDao=new StatusEventImpDao(context);
stausEventDao.saveStatusEventChange(latitude,longitude,add,time,stringFromFragment);
String values=stausEventDao.getValues(latitude,longitude,add,time,stringFromFragment);
Toast.makeText(getApplicationContext(),values,Toast.LENGTH_LONG).show();
intent1.putExtra("LATITUDE", latitude);
intent1.putExtra("LONGITUDE", longitude);
intent1.putExtra("ADDRESS", add);
sendBroadcast(intent1);
}
@Override
public void onStatusChanged(String provider, int status, Bundle extras) {
}
@Override
public void onProviderEnabled(String provider) {
}
@Override
public void onProviderDisabled(String provider) {
}
@Override
public IBinder onBind(Intent intent) {
return null;
}
public class TrackerBinder extends Binder {
public GpsTracker getService() {
return GpsTracker.this;
}
}
}
我使用此START_NOT_STICKY;它的工作,但當我打開我的應用程序再次從其新鮮開放的服務 – ManikantaReddy 2015-03-03 09:03:44