嗯,我有與已經在兩個獨立的類定義了像一個接口如何用於不同的背景android任務?
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);
}
現在我在有一個方法(JsonArrayLoaded)MainClass解決來自兩個不同背景任務或服務的兩個響應。我正在使用條件來確定執行哪個服務/類或AsynTask。
但我要求解決這樣的場景,就好像我們在未來的5個或更多的後臺服務,他們也只是返回一個JSON陣列所以,我需要做獨立的接口爲每個服務的最佳方式是什麼?
什麼應該是面向對象的出路這種情況?
接口的名稱也不正確。發佈示例時請遵循適當的命名約定。 –
在Main類中使用了哪個結果?請編輯帖子並舉例說明。沒有意義 –
@MuhammadIrfan因此,對於你面向_object方向的問題來解決你的問題,你選擇了最不面向對象的答案?我會說這很酷。 :) –