Я разрабатываю функциональный Splashscreen, который загружает мое приложение, с ним на нем находится ProgressBar
.Q: Обновление ProgressBar с реальными результатами (включая код)
Согласно официальной документации разработчиков Android, я использую Thread
+ Runnable
для выполнения моих загрузочных работ и настройки ProgressBar
.
Все, что находится внутри моего кода, приведено непосредственно в документации для Android.
Мои вопросы после того, как мой код ниже ..
Вот мой текущий код:
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?
}
Мои вопросы:
Я вижу, что Кодекс установив
mProgressStatus
равнымdoWork()
. Я бы предположил, что мне нужно создать метод под названиемdoWork()
и поместить весь его код внутри него, связанный с загрузкой приложения, и ProgressBar будет соответствующим образом обновлен. ОднакоmProgressStatus
- этоint
, так как я должен реализоватьdoWork()
как предполагалось?Кроме того, я заметил, что в объявлениях кода
private static final int PROGRESS = 0x1;
никогда не используется - так я должен вставить это где-нибудь?Наконец, в примере
onCreate
используетBundle icicle
вместоsavedInstanceState
.. Это правильно для использования моей активности Splash?
В примере я использую в моем коде выше непосредственно от Google .. и это кажется намного более простым, а .. В любом случае, вы знаете, как я может сделать пример, который я опубликовал? или ответы на вопросы, которые у меня были? – StudioB
@StudioB Я обновил для своего сценария –
Так как у меня есть большой блок кода для выполнения, как я могу определить, сколько его было выполнено? и где бы я это сказал? Потому что мой случай не так прост, как «сколько будет сделана загрузка», тем сложнее, чем это ... ..? – StudioB