すべて-ストップウォッチを実行しているスポーツトラッカーアプリケーションを使用しているservice
ため、ユーザーのデバイスはスリープ状態になり、ストップウォッチを停止する必要はありません。Map
また、ユーザーがどこに行ったかを確認できるように、アプリにタブを含めたいと考えています。これを達成するためにメインアクティビティを使用しようとしましたが、正常に機能しましたが、電話がスリープ状態になるたびにメインアクティビティが終了し、マップが引き下げられました。これにより、GPS にギャップが生じ、速度や距離を追跡できなくなります。そのため、マップをサービスに入れようとしましたが、サービスを拡張する必要があるなどの問題に遭遇しましたMapActivity
(ただし、拡張する必要もありますService
)。これが私が試したことです:
public class KeepGoing extends Service { //But also has to extend MapView?
MapView mapView = null;
MapController mapController = null;
MyLocationOverlay whereAmI = null;
protected boolean isLocationDisplayed() {
return whereAmI.isMyLocationEnabled();
}
protected boolean isRouteDisplayed() {
return false;
}
また:
@Override
public int onStartCommand(Intent intent, int flags, int startId) {
start();
return(START_NOT_STICKY);
}
private void start() {
mHandler.sendEmptyMessage(MSG_START_TIMER);
LayoutInflater inflater = ( LayoutInflater ) getSystemService( LAYOUT_INFLATER_SERVICE );
View layout = inflater.inflate( R.layout.activity_main , null );
mapView = (MapView) layout.findViewById(R.id.mapview);
mapView.setBuiltInZoomControls(true);
mapController = mapView.getController();
mapController.setZoom(15);
whereAmI = new MyLocationOverlay(this, mapView);
mapView.getOverlays().add(whereAmI);
mapView.postInvalidate(); }
onDestroy
メソッドにマップ関連のコードはありません。私の質問は次のとおりです。デバイスがスリープ状態でも実行されるように、サービスにどのように配置できますか、および/またはこれを達成するための別の/より良い方法はありますか? mapView
あなたの時間と努力に感謝します!