这是我第一次使用服务,从活动来看,它确实看起来很复杂。
所以我试图在用户关闭我的应用程序和服务后获取用户的位置。
这是我的服务班。
public class LocTrack extends Service {
GPSTracker gp;
@Override
public void onCreate()
{ gp = new GPSTracker(getApplicationContext());
onLocationChanged(gp);
super.onCreate();
}
@Override
public void onDestroy() {
// TODO Auto-generated method stub
super.onDestroy();
}
@Override
public int onStartCommand(Intent intent, int flags, int startId) {
// TODO Auto-generated method stub
return Service.START_STICKY;
}
@Override
public IBinder onBind(Intent arg0) {
// TODO Auto-generated method stub
return null;
}
public void onLocationChanged(GPSTracker track) {
// Getting latitude
double latitude = track.getLatitude();
// Getting longitude
double longitude = track.getLongitude();
Geocoder geocoder = new Geocoder(LocTrack.this, Locale.getDefault());
try
{
List<Address> addresses = geocoder.getFromLocation(latitude, longitude,1);
Log.e("Addresses","-->"+addresses);
}
catch (IOException e)
{
e.printStackTrace();
}
}
}
请告诉我我做错了什么。如果我在活动类中使用代码,那么我可以在 logcat 中获取地址,但在我使用服务时不能。
这就是我从活动中调用服务的方式
Intent intent = new Intent(MainActivity.this, LocTrack.class);
startService(intent);