ProgressDialog.schließen() funktioniert nicht
Bitte überprüfen Sie den folgenden Beispielcode. Toast-Meldungen werden angezeigt aber der progressdialog wird nie versteckt. Warum?
import android.app.Activity;
import android.app.ProgressDialog;
import android.os.Bundle;
import android.os.Handler;
import android.os.Message;
import android.widget.Toast;
public class LoadExamActivity extends Activity implements Runnable{
ProgressDialog pd;
Handler Finished = new Handler(){
@Override
public void handleMessage(Message msg){
Toast.makeText(getApplicationContext(), "DONE!", Toast.LENGTH_SHORT).show();
pd.dismiss();
}
};
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.exam);
Toast.makeText(this, "START!", Toast.LENGTH_SHORT).show();
pd = new ProgressDialog(this);
pd.show(this, "Waiting...", "Please wait five seconds...");
Thread th = new Thread(this);
th.start();
}
public void run() {
//To change body of implemented methods use File | Settings | File Templates.
for (int i = 0; i < 5; i++)
{
try
{
Thread.sleep(1000);
}catch(Exception e){}
}
Finished.sendEmptyMessage(0);
}
}
Nach fünf Sekunden "FERTIG" angezeigt, aber der progressdialog wird nicht entlassen, und selbst wenn ich pd.schließen() rechts unten thr pd.show (), ich werde nicht entlassen, der progressdialog und ich weiß nicht, warum dies geschieht, und es macht mich verrückt!
Du musst angemeldet sein, um einen Kommentar abzugeben.
Verwenden Sie nicht das Dialogfeld mit dem Fortschritt des rechts. Sie werden bemerken, zeigt die IDE ein nettes kleines Hinweisschild neben Ihrem
pd.show(...)
Linie.Was Sie tun, ist
Erstellen (unsichtbar, unwichtig) die Fortschritte der dialog mit
new ProgressDialog()
Erstellen anderen Fortschritts-dialog, mit dem gewünschten text mit
pd.Show()
, ohne speichern eine Referenz darauf.Entlassen, der erste dialog. Der dialog von (2) bleibt.
Wenn Sie ersetzen Sie Ihren code mit:
sollte es laufen just fine.
Problem hier ist mit dem Kontext, die Sie verwendet haben, zu erstellen, der ProgressDialog. Verwenden Haupttätigkeit Kontext zu schaffen, der ProgressDialog und mit show() und dissmiss () - Methode, wo Sie Sie brauchen.