0

デバイスが固定ゾーンに入ったときにアクティビティを表示したい。recivier(GpsAlarmRecivier) に startActivity があります。以下のコードは機能しますが、Activity を閉じるとクラッシュします。受信者の登録を解除する必要があるためです。

しかし、アクティビティを閉じた後でも、すべてのアプリケーションにaddProximityAlartを使用したい(たとえば、前に移動する)。出来ますか ?

Intent myIntent = new Intent("gpsup.namespace.ProximityAlert");             


PendingIntent proximityIntent = PendingIntent.getBroadcast(cxt, 0, myIntent, 0);

locationManager.addProximityAlert(records.get(pos).x, records.get(pos).y, records.get(pos).r,  
-1, proximityIntent);

IntentFilter filter = new IntentFilter("gpsup.namespace.ProximityAlert");
actv.getApplicationContext().registerReceiver(new GpsAlarmReceiver(), filter);

受信者を作成したときに、アクティビティを閉じてもaddProximityAlertを使用したい。アドバイスをありがとう。

4

1 に答える 1

2

システム GPSBroadcastReceiver をアプリケーションに直接登録する方法があるとは思いません。その場合は、マニフェストに配置するだけで、更新が発生したときに解決され、チェックを実行した後にカスタム インテントを起動できます。

それが実際に彼らがそれを許可しない理由だと思います(私は間違っているかもしれません)。GPS の更新が行われたときに、すべてのアプリケーションが起動していると問題が発生します。彼らはバックグラウンドでバッテリーを叩いています。

私が提案できるのは、GPS の更新をリッスンしてから意図をブロードキャストするサービスを作成することです。バックグラウンドで永久に実行することはできますが、Activity よりもライフサイクルが長いことは確かです。

于 2012-08-23T15:22:54.610 に答える