1

他の多くの人と同じように、バッテリー寿命を節約するために、ユーザーがアプリを離れたときにGPSをオフにする終了ボタンが必要です。基本的にこれはできないと多くの議論が投稿されていますが、私はそれを行うアプリケーションを持っているので、方法を探し続けます。そのアプリケーションの開発者は、彼が書いたサービスで内部GPSを実行し、彼の終了キーがそのサービスとvolaを強制終了すると、GPSインジケーターが即座にオフになると私に言いました。

私のアプリは非常に時間に敏感であり、システムサービスのLocationListener部分を使用するときに現在使用しているonLocationChangedと同等のものを使用したいのですが、システムサービスを作成したサービス内に配置して強制終了できるようにします。

私の質問は、更新のためにローカルサービスをポーリングする必要なしに、大幅な遅延を追加することなく、システムGPSサービスをローカルサービス内に配置できるかどうかです。これは私の最初のAndroidアプリであり、大量のCおよびPHPコードを記述しましたが、これは新しい領域であり、少し奇妙なので、これを行う方法についての助けをいただければ幸いです。

4

1 に答える 1

1

他の多くの人と同じように、GPSをオフにする終了ボタンが欲しいです

「GPSをオフにする」ことはできません。アプリにGPSが不要になったことをAndroidに伝えることができます(たとえば、GPSの更新は不要になります)。Androidは、現在GPSを使用しようとしている他の機能に応じて、GPS無線の電源を切るかどうかを決定します。

バッテリー寿命を節約するためにユーザーがアプリを離れたとき。

このためのボタンは必要ありません。1つのアクティビティのみがGPSアクセスを必要とする単純なアプリは、で位置情報の更新を要求し、onResume()でそれらを削除するだけonPause()です。より複雑なアプリは、最初に位置情報の更新をonResume()要求し、次にそれらの更新を削除するonUserLeaveHint()か、再開/一時停止操作の参照カウントを実行して、更新を削除するタイミングを決定する場合があります。

ユーザーがボタンをクリックして「GPSの使用をやめる」と明示的に言わなければならないシナリオもあるかもしれませんが、それを回避できる場合はそうしてください。

そのアプリケーションの開発者は、彼が書いたサービスで内部GPSを実行し、彼の終了キーがそのサービスとvolaを強制終了すると、GPSインジケーターが即座にオフになると私に言いました。

どういうわけか、開発者はこのサービスをいつ開始および停止するかを決定する必要があります。サービスを開始および停止するのではなく、場所の更新を要求および削除することで同じ効果を得ることができ、ヒープスペースの消費を抑え、ユーザーがタスクキラーと[強制停止]ボタンで攻撃する可能性を低くすることができます。

IMHO、位置情報の更新を伴うサービスを使用する唯一の理由は、特に活動なしでバックグラウンドで位置情報を利用したいからです。

于 2012-07-12T17:03:47.697 に答える