2012-08-23 52 views
0

我想要顯示當設備進入固定區域時的活動。我在recivier(GpsAlarmRecivier)中有startActivity。下面的代碼工作,但是當我關閉活動時,它會崩潰。我知道這是因爲我必須取消登記recivier。Android addProximityAlert適用於所有應用程序

但是我想爲所有應用程序使用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,即使我關閉活動,當我創建recivier。感謝您的任何建議。

回答

2

我不相信有一種方法可以直接在您的應用程序中註冊系統GPSBroadcastReceiver。如果是這種情況,你可以把它放在你的清單中,當更新出來時它會得到解決,然後在執行檢查之後就可以啓動你的自定義意圖。

我相信這實際上是他們不允許它的原因(我可能是錯的)。如果在GPS更新出現時每個應用程序都被喚醒,那將會有問題。他們會在背景中打電池。

我可以給出的一個建議是創建一個服務來監聽您的GPS更新,然後廣播您的意圖。儘管你可以永遠在後臺運行它,但它的活動週期肯定比活動的長。

+1

你是對的。沒有辦法將Recivier註冊到所有應用程序。我改變PendingIntent,現在它工作(但對我來說很奇怪):PendingIntent proximityIntent = PendingIntent \t .getActivity(cxt,records.get(pos).process,new Intent(cxt,alarmView.class),0);謝謝 – kolek

相關問題