ОК, ребята. Tnx в любом случае.
Теперь я понимаю, как работает Интентс.
Главное было (я так полагаю), что я использовал разные контексты.
Теперь у меня есть свой собственный класс с функцией addProximityAlert, вызываемой с помощью PendingIntent. Вместо этого я передаю WrapperContext ActivityContext (когда я создаю свой класс, я передаю образец своей Деятельности):
//Prepare proximity Intent
proximityIntent = new Intent(activityContext.getString(R.string.intent_message_location_fetched));
proximityPendingIntent = PendingIntent.getBroadcast(activityContext, 0, proximityIntent, 0);
locationManager.addProximityAlert(latitude, longitude, (float) radius, -1, proximityPendingIntent);
Обратите внимание на значение срока действия = -1! Или ваше намерение, вероятно, будет мертвым, прежде чем вы его поймаете.
Второе - я зарегистрировал фильтр намерений с action = "@ strings / my_message" в манифесте:
<activity ...>
...
<intent-filter>
<action android:name="@string/intent_message_location_fetched"/>
</intent-filter>
</activity>
А потом у меня есть это в моем собственном конструкторе классов:
//Create and register receiver
BroadcastReceiver mReceiver = new BroadcastReceiver() {
@Override
public void onReceive(Context context, Intent intent) {
if(intent.getAction().equals(context.getString(R.string.intent_message_location_fetched))
&& intent.getExtras().getBoolean(LocationManager.KEY_PROXIMITY_ENTERING))
{
Toast.makeText(activityContext, "LOCATION INTENT WORKS!", Toast.LENGTH_SHORT).show();
}
}
};
activityContext.registerReceiver(mReceiver, new IntentFilter(activityContext.getString(R.string.intent_message_location_fetched)));
Надеюсь, это кому-нибудь пригодится.