Externe AsyncTask-Klasse mit ProgressDialog [Update: und zurückkehren?]

** Aktualisiert: (siehe unten) ** Ich habe mich ein paar Tage umgesehen und kann darauf keine eindeutige Antwort finden. Manche sagen, es sei möglich zu sagen, manche sagen, es sei nicht möglich. Ich werde verrückt nach dem.

Ich möchte nur, dass die AsyncTaskTask einen Fortschrittsbalken und eine externe Klasse anzeigt. Dazu übergebe ich den Kontext, wie Sie in der Hauptklasse sehen können. Aber was auch immer ich versuche, ich bekommeNullPointerException.

Working Codebeispiele wird geschätzt. Vielen Dan

Unter Android 2.2 übrigens.

Main

import android.app.Activity;
import android.os.Bundle;

public class AsyncDemo extends Activity {

    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main);
        new AsyncClass(this).execute();
    }
}

AsyncClass.java

import android.app.ProgressDialog;
import android.content.Context;
import android.os.AsyncTask;
import android.os.SystemClock;

public class AsyncClass extends AsyncTask<Void, String, Void> {
    private Context context;
    ProgressDialog dialog = new ProgressDialog(context);

    public AsyncClass(Context cxt) {
        context = cxt;
    }

    @Override
    protected void onPreExecute() {
        dialog.setTitle("Please wait");
        dialog.show();
    }

    @Override
    protected Void doInBackground(Void... unused) {
        SystemClock.sleep(2000);
        return (null);
    }

    @Override
    protected void onPostExecute(Void unused) {
        dialog.dismiss();
    }
}

Aktualisieren Ich habe eine Folgefrage: Ist es mit dem obigen Code möglich, einen Wert aus der onPostExecute-Methode zurück an die Hauptklasse zu senden? (Tut mir leid, dass ich so dumm bin) Ich habe so etwas ausprobiert:

String result = new AsyncClass(this).execute();

und dann eine Methode, die einen String zurückgibt. Aber ich kann das nicht, weil ich habe:

Type mismatch: cannot convert from AsyncTask<String,Void,Void> to String

Was kann ich tun, um dieses Problem anzugehen? Vielen Dank

Antworten auf die Frage(6)

Ihre Antwort auf die Frage