I am trying to use Broadcast Receiver inside Service class. But onReceive method in Broadcast Receiver is not called. I doesn't where is the problem occurs.Below is my code,
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");
}
}
}
I have added Action to Intent Filter in onCreate and onStart. After registering it will go to onReceive method and need to check the Action. Am I Right? But in my case onReceive method is not called.Anybody help me to find a better solution.