Ich habe eine Klasse, die für verschiedene ASyncTasks verwendet wird. Manchmal muss ich bestimmte Schaltflächen, Ansichten oder was auch immer basierend auf der Aktivität oder Aktion ausblenden. Das Objekt, das die Sichtbarkeit benötigt, kann variieren.Überschreiben und Überschreiben in einer ASync-Klasse
MyAsyncTask
public class MyAsyncTask extends AsyncTask<String, Void, JSONObject> {
private ProgressBar mProgressBar;
public ASynceResponse delegate = null;
public MyAsyncTask() {
this.delegate = delegate;
this.mProgressBar = progressBar;
}
@Override
protected void onPreExecute() {
mProgressBar.setVisibility(View.VISIBLE);
}
@Override
protected JSONObject doInBackground(String... params) {
return;
}
@Override
protected void onPostExecute(JSONObject data) {
mProgressBar.setVisibility(View.GONE);
delegate.processResults(data);
}
public interface ASyncResponse {
void processResults(JSONObject data);
}
}
Ich nenne es in der Regel von:
new MyAsyncTask(this, mProgressBar).execute("Something","Something Else",null);
die ich in einem ProgressBar in der Aktivität übergeben, die die Hintergrundaktion zeigt geschieht.
Aber ich will mehr. Ich möchte Overide
meine Klassen onPreExecute
und onPostExecute
auch andere Elemente zu verstecken/zeigen.
Ist das möglich?
Aber ich versuche, einen Weg zu finden, um die onPreExecute
OverideType (oder viele Arten) Ansichten zu verbergen.
Ist so etwas möglich?
MyAsyncTask myAsyncTask = new MyAsyncTask(new onPreExecute(
// hide a view
));
können Sie Rückrufe auf die Aktivität von 'onPreExecute' und' onPostExecute' und Ansichten entsprechend in Aktivität aktualisieren. 'new onPreExecute (' ist falsch. Sie können auch Fortschrittsbalken in der Aktivität selbst aktualisieren (ausblenden oder anzeigen) – Raghunandan
Aber wie sage ich onPreExecute * was * Ich möchte @Raghunandan? –
ackoverflow.com/questions/9963691/android- asynctask-sending-callbacks-to-ui Sie wissen, was Sie in "onPreExecute" tun sollten, implementieren Sie das gleiche in der Callback-Methode in Aktivität – Raghunandan