AsyncTask和Toast不是在onPostExecute上创建的

fab*_*bio 2 android

我有一个AsyncTask类.当我有一个错误,我想看到一个祝酒词.这是我的AsynTask类:

private GetUtenti threadutenti;
threadutenti= (GetUtenti) new GetUtenti(this.getActivity()).execute();
Run Code Online (Sandbox Code Playgroud)

这是我的班级:

class GetUtenti extends AsyncTask<Void, Void, Void> {
    private Context context;
    private boolean errore = false; 
    private Database db;

    public GetUtenti(Context context){
        this.context=context;
    }
    @Override
    protected void onPostExecute(Void result) {
        db.disconnetti();
        if (errore) {
             Toast.makeText(context, "error!", Toast.LENGTH_SHORT)
              toast.show();
        }
        else{
            setListaUtenti();
        }
        bProgresso.dismiss();           
    }
    @Override
    protected void onPreExecute() {
        db = new Database(.....);
    }
    @Override
    protected Void doInBackground(Void... params) {
        db.connetti();
        if(!db.isConnesso()){           
            errore= true;               
        } else {
            utenti.clear();
            utenti = Utente.getUtenti(db);              
        }
    return null;
    }
}
Run Code Online (Sandbox Code Playgroud)

当我想看到我的Toast消息时我有这个:

03-04 17:41:06.534: E/AndroidRuntime(13622): FATAL EXCEPTION: main
03-04 17:41:06.534: E/AndroidRuntime(13622): java.lang.RuntimeException: This Toast was not created with Toast.makeText()
03-04 17:41:06.534: E/AndroidRuntime(13622):    at android.widget.Toast.setText(Toast.java:282)
03-04 17:41:06.534: E/AndroidRuntime(13622):    at com.unipg.utente.ListUtente$GetUtenti.onPostExecute(ListUtente.java:145)
Run Code Online (Sandbox Code Playgroud)

为什么?

Rag*_*ood 5

尝试类似的东西:

if (errore) {
    Toast toast = Toast.makeText(context, "error!", Toast.LENGTH_SHORT);
    toast.show();
}
Run Code Online (Sandbox Code Playgroud)