0

私のアプリ:私は位置情報サービスを開発しています、それは営業担当者を追跡するためのものです。シナリオは、xyzが営業担当者を追跡したい場合です。彼は、位置情報の更新を取得するための時間と距離の間隔を設定し、その後、携帯電話を営業担当者に引き渡し、アプリは継続的に実行され、GPSを追跡する必要があります。

問題:プロジェクトはほぼ完了しましたが、このアプリをFOREVERで実行して追跡したいのですが、GPSでこれを行っています。時間と距離を設定した後でアプリを最小化すると、Android OSでアプリが閉じますが、FOREGROUNDになるとそれは完璧に動作します。

親切にこれのための可能な解決策は何であるか私に提案してください。

4

3 に答える 3

1

まず、アクティビティ自体ではなくサービスで追跡を行い、ユーザーがサービスを操作していなくてもアプリが追跡を行うようにします。

そして、AlarmManagerはあなたが探しているものです。インテントが特定の時間に呼び出されるようにスケジュールできます。したがって、サービスがまだ実行されているかどうかを確認し、実行されていない場合は再起動して追跡を再開できます。

このアプリからUpdateServiceを見てみましょう。

 Intent i = new Intent(UPDATE_ACTION);
 PendingIntent alarmManagerPendingIntent = PendingIntent.getBroadcast(this, 0, i, 0);

 mAlarmManager.setRepeating(AlarmManager.ELAPSED_REALTIME_WAKEUP,
                SystemClock.elapsedRealtime(), //Start now
                10*60*1000, //every 10 minutes
                alarmManagerPendingIntent);
于 2013-02-16T05:31:32.630 に答える
0

通常のアプリに加えて、代わりにサービスを使用する必要があります。アプリケーションを閉じてもサービスを実行できます。サービスを「永久に」実行することはできません。また、いつでも手動でサービスを停止できます。サービスがより長く存続するには、フォアグラウンドサービスである必要があります-詳細はこちら:フォアグラウンドでのサービスの実行

于 2013-02-16T05:33:59.923 に答える
0

最も簡単な方法は

@Override
public void onDestroy() {
    Intent serviceIntent = new Intent(getApplicationContext(), UpdateLocationService.class);
    getApplicationContext().startService(serviceIntent);
}
于 2015-06-08T15:31:36.260 に答える