2016-12-25 7 views
0

У меня есть две разные асинтеты. Один, чтобы сделать запросы GET, а другой - выполнять запросы POST.Повторное использование Asynctask в нескольких классах

В моем приложении, я должен сделать несколько запросов, поэтому я хотел бы иметь возможность повторно использовать код, который я написал.

public static class performGetRequest extends AsyncTask<String, Void, String> { 

    ProgressDialog progress; 
    Activity activity; 
    Boolean progressBarRequired; 

    public FragmentDelivery.GetResponse delegate = null;//Call back interface 

    public performGetRequest(Boolean progressBarNeeded, Activity act, FragmentDelivery.GetResponse asyncResponse) { 
     delegate = asyncResponse;//Assigning call back interfacethrough constructor 
     activity = act; 
     progressBarRequired = progressBarNeeded; 
    } 

С помощью этого кода я могу назвать эту асинтезу только из фрагмента фрагмента. Как я мог назвать этот класс из любого другого класса?

Большое спасибо.

+0

таким же образом, вы называете его от 'FragmentDelivery'. Возможно, переместите 'GetResponse' в свой класс –

+0

Вы имеете в виду, добавив тот же код, но изменив« FragmentDelivery »для другого класса? – Aldridge1991

ответ

1

просто создайте свой собственный интерфейс.

public static interface PerformInterface { 
public void mycallback(); 
} 
public static class performGetRequest extends AsyncTask<String, Void, String> { 

    ProgressDialog progress; 
    Activity activity; 
    Boolean progressBarRequired; 

    public PerformInterface delegate = null;//Call back interface 

    public performGetRequest(Boolean progressBarNeeded, Activity act, PerformInterface asyncResponse) { 
     delegate = asyncResponse;//Assigning call back interfacethrough constructor 
     activity = act; 
     progressBarRequired = progressBarNeeded; 
    } 
} 

и реализовать его любым другим класом, который вы хотите.

, например

extends Activity implements PerformInterface { 

///.... 
@Override 
public void mycallback() { 
//your code 
} 
} 

таким же образом можно переопределить даже FragmentDelivery.GetResponse

Смежные вопросы