Как один интерфейс можно использовать для разных фоновых задач Android?

Ну, у меня есть класс активности с двумя фоновыми задачами (Async-Task), которые были определены в двух отдельных классах, таких как

public class GettingBeaconsList extends AsyncTask 
public class GettingAirports extends AsyncTask 

которые инициализируются и выполняются вMainClass

public class MainClass extends Activity implements DelegateTaskCompleted
{

     int ServiceBoolean = 0;
     public OnClickListener LoadingBeaconList = new OnClickListener()
     {
         public void onClick(View v)
         {
             ServiceBoolean  =1;
             new GettingBeaconsList (context,MainClass.this).execute();
         }
     }

    public OnClickListener LoadingAirportList= new OnClickListener()
    {
         public void onClick(View v)
         {
             ServiceBoolean  =2;
             new GettingAirports(context,MainClass.this).execute();
         }
    }


    @Override
    public void JsonArrayLoaded(JSONArray result) 
    {
        // bla bla or whatever here i write, does not matter
         if(ServiceBoolean  == 1)   { 
                //  Load activity 5
         }

         else if( ServiceBoolean  == 2)
         { 
             //  Load activity 6

         }

        else if( ServiceBoolean==3 )
        {
            // display Toast or Alert Box or load Activity number 8
        } 


    }

}

Теперь в приведенном выше коде MainClass.this хранится как ссылка на интерфейс в подклассах AsynTask, как это

private Context context             =   null;
private DelegateTaskCompleted delegate      =   null;

public GettingBeaconsList (Context context,DelegateTaskCompleted delegate)  
{   
    this.context        =   context;
    this.delegate       =   delegate;
}

// And constructor of second AsynTask is same as of First AsynTask Class

private Context context             =   null;
private DelegateTaskCompleted delegate      =   null;

public GettingAirports (Context context,DelegateTaskCompleted delegate) 
{   
    this.context        =   context;
    this.delegate       =   delegate;
}

onPostExecute каждого класса или подкласса AsynTask, JSONArray возвращается или передается вызывающему классу, как показано ниже. В этом случае вызывающий классMainClass но есть другие классы активности, которые используют те же классы AsynTask (GettingBeaconsList а такжеGettingAirports)

protected void onPostExecute(String file_url)   
{           
    pDialog.dismiss();      
    delegate.JsonArrayLoaded(gotNearestbeacons);
}

Теперь у меня есть один метод (JsonArrayLoaded) вMainClass для решения двух ответов, поступающих от двух разных фоновых задач или служб. Я использую условие, чтобы выяснить, какой сервис / класс или AsynTask выполняется.

Но я прошу наилучший способ решения такого сценария, если в будущем у нас будет 5 или более фоновых сервисов, и они просто возвращают массив JSON, так что мне нужно создавать отдельные интерфейсы для каждого сервиса?

Каким должен быть объектно-ориентированный выход в этом случае?

Ответы на вопрос(6)

Ваш ответ на вопрос