簡體   English   中英

創建一個擴展AsyncTask的抽象類

[英]Create an abstract class that extends AsyncTask

我想創建一個中間的抽象類,該類將AsyncTask擴展為在密切相關的類之間共享代碼。 真正的具體類將擴展中間的抽象類以定義細節。

對於AsyncTask,我需要指定參數,進度和結果。 但是,在中間層,我沒有任何實現細節。 那么,應該如何為具體類保留詳細定義呢?

//實現共享代碼的中間層

public class SiteAsyncTask extends AsyncTask<?, ?, ?>{

//混凝土層

public class GetSiteAsyncTask extends SiteAsyncTask<Void, Void, Site> {

public class ListSiteAsyncTask extends SiteAsyncTask<Void, Void, ArrayList<Site> {

//在中間的抽象層上,如何將參數,進度和結果定義為通用。 結果可以是一個站點或站點的數組列表

public class SiteAsyncTask extends AsyncTask<?, ?, ?>{

//在中間層,如何定義doInBackground使其通用。 它可以是一個Site或Site的ArrayList

protected Site doInBackground(Void... params) {

謝謝

當使用泛型擴展類時,您可以在子類中重新定義泛型,然后將其重新應用於父類的定義。

如果您需要所有參數,

public class SiteAsyncTask<Input, Progress, Result> extends AsyncTask<Input, Progress, Result>{}

如果你只關心結果,

public class SiteAsyncTask<Result> extends AsyncTask<Void, Void, Result>{}

如果你不在乎

public class SiteAsyncTask extends AsyncTask<Void, Void, Void>{}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM