-1

My application has an BroadCastReceiver, It is programatically registered using registerReceiver(receiver, filter). The code registerReceiver(receiver, filter) is placed in Application class hence it has global access.The BroadCastReceiver starts a Service that send multiple OkHttp POST requests to server. I want to unregister instance of BroadCastReceiver when multiple POST requests are successful. How can this be done?

MyService.java:

public class MyService extends Service {

  @Override
  public void onCreate() {
     for(int i=0;i<size;i++){
       /....Multiple POST Requests..../
     }

     Callback/Event(){ execute unregisterReceiver();}
  }

  @Override
  public void onDestroy() {

  }
}

MyReciever.java:

public class MyReceiver extends BroadcastReceiver {
  @Override
  public void onReceive(Context context, Intent intent) {
     startService(new Intent(context, MyService.class));
  }
}
Zeeshan Hassan Memon
  • 8,105
  • 4
  • 43
  • 57
Shreyas Ponkshe
  • 116
  • 1
  • 7

1 Answers1

0

Ok I solved it by simply using a counter variable.

public class MyService extends Service {

 int counter;
 @Override
 public void onCreate() {
  counter = size ;
  for(int i=0;i<size;i++){
    /....Multiple POST Requests..../

    OnResponse: 
    counter-- 
    if(counter ==0){ 
      execute unregisterReceiver();
      }

   }

 }

 @Override
 public void onDestroy() {

   }
 }
Shreyas Ponkshe
  • 116
  • 1
  • 7