Я пытаюсь использовать Broadcast Receiver внутри класса Service. Но метод onReceive в Broadcast Receiver не вызывается. Я не знаю, где возникает проблема. Ниже приведен мой код,
public class CallService extends Service {
CallReceiver callReceiver=null;
String TAG=CallService.class.getSimpleName();
@Override
public void onStart(Intent intent, int startId) {
super.onStart(intent, startId);
CallReceiver callReceiver=new CallReceiver();
IntentFilter intentFilter=new IntentFilter();
intentFilter.setPriority(IntentFilter.SYSTEM_HIGH_PRIORITY);
intentFilter.addAction("a");
this.registerReceiver(callReceiver,intentFilter);
}
@Override
public int onStartCommand(Intent intent, int flags, int startId) {
return super.onStartCommand(intent, flags, startId);
}
@Override
public void onCreate() {
super.onCreate();
Log.d(TAG, "onCreate: started in call service");
CallReceiver callReceiver=new CallReceiver();
IntentFilter intentFilter=new IntentFilter();
intentFilter.setPriority(IntentFilter.SYSTEM_HIGH_PRIORITY);
intentFilter.addAction("a");
this.registerReceiver(callReceiver,intentFilter);
}
@Override
public void onDestroy() {
super.onDestroy();
this.unregisterReceiver(callReceiver);
}
@Nullable
@Override
public IBinder onBind(Intent intent) {
return null;
}
public class CallReceiver extends BroadcastReceiver{
@Override
public void onReceive(Context context, Intent intent) {
if(intent.getAction().equalsIgnoreCase("a"))
Log.d("CallService", "onReceive: aa");
}
}
}
Я добавил действие в фильтр намерений в onCreate и onStart. После регистрации он будет go метод onReceive и должен проверить действие. Я прав? Но в моем случае метод onReceive не вызывается. Кто-нибудь поможет мне найти лучшее решение.