Ich entwerfe einen funktionierenden Splashscreen, der meine App lädt, mit einer ProgressBar
darauf.F: Aktualisieren einer ProgressBar mit echten Ergebnissen (enthält Code)
Gemäß der offiziellen Android-Entwickler-Dokumentation verwende ich eine Thread
+ Runnable
, um meine Ladearbeiten zu erledigen, und richte die ProgressBar
ein.
Alles in meinem Code unten stammt direkt aus der Android-Dokumentation.
Meine Fragen sind nach meinem Code unten ..
Hier ist meine aktuellen Code:
public class SplashActivity extends AppCompatActivity {
private static final int PROGRESS = 0x1;
private ProgressBar mProgress;
private int mProgressStatus = 0;
private Handler mHandler = new Handler();
@Override
protected void onCreate(Bundle icicle) {
super.onCreate(icicle);
setContentView(R.layout.activity_splash);
mProgress = (ProgressBar) findViewById(R.id.progressBar);
new Thread(new Runnable() {
public void run() {
while (mProgressStatus < 100) {
mProgressStatus = doWork();
// Update the progress bar
mHandler.post(new Runnable() {
public void run() {
mProgress.setProgress(mProgressStatus);
}
});
}
}
}).start();
}
// Set up a method here to do my loading work called doWork?
}
Meine Fragen sind:
ich, dass der Kodex sehen ist Setzen Sie den Wert
mProgressStatus
aufdoWork()
. Ich würde annehmen, dass ich eine Methode verursachen muss, diedoWork()
genannt wird und meinen ganzen Code innerhalb es bezogen auf das Laden der APP einlege, und die ProgressBar wird entsprechend aktualisiert. Jedoch istmProgressStatus
einint
, also wie soll ichdoWork()
implementieren wie beabsichtigt?Auch habe ich festgestellt, dass in den Deklarationen des Codes 10 nie verwendet wird - also soll ich das irgendwo einfügen?
Zuletzt, im Beispiel,
onCreate
verwendetBundle icicle
anstelle vonsavedInstanceState
.. Ist das korrekt für meine Splash-Aktivität zu verwenden?
inline als Ausführung Das Beispiel, das ich in meinem Code oben bin mit direkt von Google .. und es scheint viel einfacher als auch .. In jedem Fall wissen Sie, wie ich Kann das Beispiel machen, dass ich Arbeit gepostet habe? oder die Antworten auf die Fragen, die ich hatte? – StudioB
@StudioB Ich habe für Ihr Szenario aktualisiert –
Also, da ich einen großen Block Code ausführen muss, wie kann ich feststellen, wie viel davon abgeschlossen wurde? und wo würde ich es hinstellen? Weil mein Fall nicht so einfach ist wie "wie viel von einem Download gemacht wird", ist es komplizierter als das .. ..? – StudioB