4

まず第一に、私はどんなトピックも繰り返さないことを望みます、私は尋ねる前にこれについてインターネットで読むことに多くの時間を費やしました。

iOS => 5用のアプリを開発していて、ユーザーの場所を取得する必要がありますが、常に正確な位置を取得する必要はないため、アプリがバックグラウンドに移行したときに、通常の場所モードを重要な場所の変更に変更します。アプリが前面に表示されます重要な位置変更モードを停止し、通常の位置モードに戻ります。これで問題ありません。

私の問題は、アプリがバックグラウンドモードになるか、ユーザーがアプリを強制終了してもGPS信号(紫色の矢印)が常に表示されることです。デバイスを再起動した後でも、デバイスを非表示にする唯一の方法は、アンインストールするか、を無効にすることです。アプリがバックグラウンドに移行すると場所が大幅に変わりますが、ユーザーがバックグラウンドモードに移行したときにこのモードが機能する必要があります。アプリが強制終了されたときではない可能性があります。

ユーザーがアプリを強制終了したときにサービスを停止する方法がわかりません...マルチタスクがオンの場合、イベント「applicationWillTerminate」は呼び出されないためです。

紫色の矢印を常に表示したくないので、アプリが強制終了されても、アプリがバッテリーを消耗しているとユーザーに思わせたくないので、ユーザーはアプリをインストールしたくないと考えています。

最初の質問:アプリで重要な場所の変更が有効になっている場合、アプリが強制終了されても、紫色の矢印が常に表示されるのは正常ですか?

2番目の質問:これを変更して、少なくともアプリが終了して紫色の矢印を非表示にしたときにサービスを停止する方法はありますか?

皆さん、ありがとうございました。何かがおかしいと私の英語でごめんなさい。

4

3 に答える 3

4

このサービスについて確認するために数日調査した後、トップバーの矢印なしでバックグラウンドで重要な場所の変更を使用する方法はないようです。私はさまざまなアプリでテストし、インターネットで読んでいますが、これを解決するものは何もありません。

唯一の「解決方法」は、アプリでマルチタスクモードを無効にし、「applicationWillTerminate」イベントで重要な場所の変更を無効にすることですが、意味がありません...私は常にバックグラウンドの場所を失っています。アプリが殺された...だから役に立たない。

それは悪いです...バッテリーを節約する場所を取得するための本当に良いサービスですが、ユーザーと開発者として、アプリが殺された後でも常にこのアイコンを表示するアプリは望んでいません。開発者として、人々がアンインストールすることを望んでいませんこのため、通常のユーザーとして、通常のGPSまたは重要な場所が変更された場合にこのアイコンが何を意味するのか、またこれが何を意味するのか...バッテリーが消耗しているかどうかはわかりません。

バックグラウンドタスクで場所を取得する他のオプションですが、バッテリーに大きな影響を与えます。

アップルが将来のバージョンでこれを修正することを願っています...少なくとも新しい矢印を追加するか、新しい場所が常にインストールされたときにのみ表示するか、アプリが強制終了されたときにかがむことを許可します。

これはすべてiOSで調査されています-6.1

ありがとうございます。

于 2013-03-27T11:37:15.837 に答える
1

重要な場所の変更サービスを使用すると、OSはアプリを実行し続けます。アプリがバックグラウンドで強制終了された場合、OSはアプリを再起動するため、紫色の矢印が常に表示されます。新しい場所が検出されると、アプリが再起動されます。ドキュメントから:

このサービスを実行したままにして、その後アプリを一時停止または終了した場合、新しい位置データが到着すると、サービスはアプリを自動的にウェイクアップします。ウェイクアップ時に、アプリはバックグラウンドに置かれ、位置データを処理するために少し時間が与えられます。...重要な位置情報サービスの変更を停止するには、stopMonitoringSignificantLocationChangesメソッドを呼び出します。

于 2013-03-25T17:01:34.287 に答える
0

うーん、面白い。別のアプリでその問題が発生したのを見たばかりです。矢印がまだアクティブになっているのを見て、そのアプリの位置情報の更新を無効にしたいので、問題は現実のものです。私が考えることができる最も良いことは、それがあなたのアプリに適切であるならば、特定の時間の後に位置監視を無効にするある種のタイマーを持つことです。

于 2013-03-25T17:05:57.437 に答える