Wie Sie das nicht erwähnt haben Änderungen, die Sie in UI vornehmen möchten, gebe ich eine allgemeine Methode mit einem Beispiel der Aktualisierung textView
von AsyncTask.
Es gibt eine Methode onPostExecute()
, die Ihnen hier helfen kann. Sagen Sie bitte eine Instanz von Textview in UI haben, dann können Sie wie folgt vorgehen:
protected void onPostExecute(String result){
textView.setText(result);
}
Und ja, wie Sie fordern, dass Ihre Ansichten in anderen Klasse sind und wie sie dann hier in AsyncTask Klasse zuzugreifen, ist die Lösung :
Pass Activity-Instanz beim Starten von AsyncTask. Jetzt können Sie alle Ansichten dieser Aktivität verwenden. Zum Beispiel:
class MyAsyncTask extends AsyncTask<URL, Integer, Long> {
Activity mActivity;
//constructor.
public MyAsyncTask(Activity activity) {
mActivity = ativity;
}
...
protected void onPostExecute(String result){
TextView tv = mActivity.findViewById(...);
tv.setText(result);
}
}
Und AsyncTask wie folgt beginnen:
new MyAsyncTask(MainActivity.this).execute();
'AsyncTask' hat eine' onPostExecute' Methode, die auf einem UI-Thread ausgeführt wird. Sie können das verwenden – Ramanlfc
Zeigen Sie Ihre Bemühungen –
Erzählen Sie uns etwas über Ihren Code, ist AsyncTask in der gleichen Klasse? Einige weitere Informationen sind erforderlich. – Ashwani