Für ein paar Tage ein Problem haben. Ich muss einfach zeigen ProgressBar
(nicht Dialog) während einige Sachen im Haupt-Thread ... Ich dachte, es ist eine sehr einfache Frage, aber ich kann das nicht tun, mir bitte helfen.Zeige Fortschrittsbalken in einem anderen Thread
Zuerst versuchte ich einfach setVisibility(View.VISIBLE)
vor und setVisibility(View.GONE)
nach.
Aber das ist in dem gleichen Thread, und ProgressBar
eingefroren, während meine Funktion arbeitet.
Jetzt habe ich diesen Code, aber ich habe einige Fehler, und ich weiß nicht, was falsch ..
mein einfaches Layout:
<?xml version="1.0" encoding="utf-8"?>
<FrameLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:orientation="vertical" >
<ProgressBar
android:id="@+id/loading"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center"
android:visibility="gone" />
</FrameLayout>
Ich habe eine Basisaktivität:
public class BaseActivity extends Activity {
public ProgressBar loading;
public class ProgressBarShow extends AsyncTask<Void, Void, Void> {
protected Void doInBackground(Void... unused) {
return(null);
}
protected void onProgressUpdate() {
}
protected void onPreExecute() {
loading.setVisibility(View.VISIBLE);
}
protected void onPostExecute() {
}
}
}
und meine Arbeitstätigkeit schließlich, die BaseActivity
Ich habe viele Aktivitäten, die Fortschrittsbalken benötigen, deshalb habe ich BaseActivity
, erstellt, um Code nicht zu duplizieren.
Ich muss lange Arbeit (Stuff-Funktion) in Haupt-Thread, weil ich Hauptfenster einfrieren will und nicht Benutzer alles tun (klicken Sie auf Schaltfläche etc ..), nur arbeiten ProgressBar zeigen.
Was ist falsch in meinem Beispiel? Oder mir einen Rat geben, wie kann ich dies besser tun
Wenn Sie die Interaktion des Benutzers mit der Anwendung blockieren wollen, warum Benutzt du nicht einfach einen Fortschrittsdialog? Ich empfehle Ihnen, den Fortschrittsdialog zu verwenden, weil er tut, was Sie wollen. – Cata