서비스의 동작에 대해 조금 혼란 스럽습니다. 내 장치의 위도와 경도가 변경되는 즉시 내 위치를 이메일로 보내는 서비스 클래스를 만들었습니다. 서비스는 다음과 같습니다. 내 전화 화면이 켜져 있지만 서비스 화면의 전화 화면이 새로운 위치에 대해 업데이트되지 않는 순간에 완벽하게 작동합니다. 나는 잠에서 깨우기 잠금 장치에 대한 내용을 읽었습니다. 잠자기 잠금을 어떻게 구현할 수 있는지 모르겠습니다. 내 서비스에 심지어 나는 그것이 작동 또는 내 서비스 클래스 내 서비스 클래스 코드에 내가 웨이크 잠금을 획득 할 수있는 방법 나를 인도 안되요 여부를 알 수 없습니다 :이 서비스 클래스가화면이 꺼져있을 때 서비스가 꺼져 있습니다.
public class LocationUpdater extends Service {
private LocationManager lm;
private LocationListener locationListener;
@Override
public IBinder onBind(Intent intent) {
return null;
}
@Override
public int onStartCommand(Intent intent, int flags, int startId) {
Toast.makeText(getApplicationContext(), "Location updater started",Toast.LENGTH_LONG).show();
locationListener = new MyLocationListener();
lm = (LocationManager) getSystemService(Context.LOCATION_SERVICE);
if (!lm.isProviderEnabled(LocationManager.GPS_PROVIDER)) {
lm.requestLocationUpdates(LocationManager.NETWORK_PROVIDER, 0,0,
locationListener);
} else {
lm.requestLocationUpdates(LocationManager.GPS_PROVIDER,0, 0,
locationListener);
lm.requestLocationUpdates(LocationManager.NETWORK_PROVIDER,0, 0,
locationListener);
}
return START_STICKY;
}
@Override
public void onDestroy() {
lm.removeUpdates(locationListener);
super.onDestroy();
}
@Override
public void onCreate() {
Toast.maketext(getApplicationContext,"Updater Serive Created",Toast.LENGTH_LONG).show;
}
private class MyLocationListener implements LocationListener {
@Override
public void onLocationChanged(Location loc) {
if (loc != null) {
String latitude=loc.getLatitude();
Striing longitude=loc.getLongitude();
emailMyLocation(latitude,longitude);
}
}
@Override
public void onStatusChanged(String provider, int status, Bundle extras) {
}
@Override
public void onProviderEnabled(String provider) {
}
@Override
public void onProviderDisabled(String provider) {
}
}
}
하는 loc을 업데이트 중입니다. 내 장치에 이메일을 보내주십시오. 화면이 꺼져 있어도 어떻게 작동시킬 수 있습니까?
서비스가 'WAKE_LOCK' 권한을 구현하도록하십시오. –