Androidアプリケーションに、ユーザーがアプリケーションを終了した後も位置情報の更新をリッスンし続ける必要があるサービスがあります(これがバッテリー寿命に与える影響は別の問題です)。
このページで概説されているAndroidのサービスのライフサイクルを正しく理解したかどうかはわかりません。
http://developer.android.com/reference/android/app/Service.html
onStart()メソッドでSTART_STICKYを返すと、サービスが独自のプロセスで実行されているかどうかに関係なく、メインアプリケーションが終了した後もサービスは実行され続けると思います。サービスがアプリの他の部分と同じプロセスで実行されていて、私が正しく理解している場合、メインアプリのプロセスは、アプリが終了した後も、そのサービスを実行するためだけに存続します。アプリを再起動すると、まだ実行中のサービスと同じプロセスで実行されます。システムのメモリが少なくなると、Androidはこのサービスを終了することを決定する場合があります。
次に、GPSの更新をリッスンしているロケーションリスナーを、アプリケーションの他の部分と同じプロセスで実際に同じスレッドで実行しても問題ないと思います。GPSからの更新を待っているときにブロックされることはありません。
私は正しく理解しましたか?