新しい Geofencing API を Android アプリに追加しています。BroadcastReceiver でトランジションをキャッチしたいと考えています。IntentService の代わりに BroadcastReceiver を使用して Geofencing を実行しようとしましたが、BroadcastReceiver がまったく呼び出されません。BroadcastReceiver を IntentFilter に正しく登録しました。これは私のバインディング関数です:
private PendingIntent getTransitionPendingIntent() {
if(transitionPendingIntent == null) {
Intent intent = new Intent(context, GeofenceListener.class);
intent.setAction(GeofenceUtil.ACTION_TRANSITION_OCCURED);
return PendingIntent.getBroadcast(
context,
0,
intent,
PendingIntent.FLAG_UPDATE_CURRENT
);
}
else
return transitionPendingIntent;
}
BroadcastReceiverがトリガーされない理由を教えてもらえますか? BroadcastReceiverではなくIntentServiceで機能するのはなぜですか?