好吧,我有一个带有两个后台任务(Async-Task)的活动类,它们已在两个单独的类中定义,例如
public class GettingBeaconsList extends AsyncTask<String, String, String> 
public class GettingAirports extends AsyncTask<String, String, String> 
在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;
}
每个 AsynTask 类或子类的 onPostExecute,JSONArray 返回或传回调用类,如下所示。在这种情况下,调用类是MainClass但还有其他活动类使用相同的 AsynTask 类(GettingBeaconsList和GettingAirports)
protected void onPostExecute(String file_url)   
{           
    pDialog.dismiss();      
    delegate.JsonArrayLoaded(gotNearestbeacons);
}
现在我在MainClass中有一个方法 (JsonArrayLoaded)来处理来自两个不同后台任务或服务的两个响应。我正在使用条件来确定执行了哪个服务/类或 AsynTask。
但是我要求最好的方法来解决这种情况,如果我们将来有 5 个或更多后台服务,它们也只是返回一个 JSON 数组,所以我需要为每个服务创建单独的接口吗?
在这种情况下,面向对象的出路应该是什么?