我很難使用/理解BroadcastReceivers和IntentFilters。我的測試活動中有以下代碼。測試活動包含一個.addProximityAlert,如果.addProximityAlert被觸發,我想廣播到Test2接收器。我測試這個時發生錯誤。我究竟做錯了什麼?爲什麼我的接收器不接收廣播?
測試活動:
public class Test extends BroadcastReceiver
{
LocationManager lm;
...
@Override
public void onReceive(Context context, Intent intent)
{
...
final String PROX_ALERT_INTENT = "com.example.proxalert.Test2";
Intent alert = new Intent(PROX_ALERT_INTENT);
PendingIntent proximityIntent = PendingIntent.getBroadcast(context, 0, alert, 0);
lm.addProximityAlert(latitude, longitude, radius, expiration, proximityIntent);
IntentFilter filter = new IntentFilter(PROX_ALERT_INTENT);
context.registerReceiver(new Test2(), filter);
Test2的接收機:
public class Test2 extends BroadcastReceiver {
@Override
public void onReceive(Context arg0, Intent arg1) {
String key = LocationManager.KEY_PROXIMITY_ENTERING;
Boolean entering = arg1.getBooleanExtra(key, false);
if (entering) {
//toast notification "welcome"
}
...
後的異常堆棧 – Atrix1987
請使用logcat的,看你的「錯誤」相關的堆棧跟蹤。如果您不明白,請將其複製並通過上面的「編輯」鏈接粘貼到您的問題中。 – CommonsWare