Сбивание с толку результатов ... У меня есть 5 progressBars в действии, отлично работающем.Слишком много 7 потоков/стоков? Что замедляет мое приложение для сканирования?
Но через некоторое время пользовательский интерфейс почти останавливается.
Как я могу быть уверен, что мои обработчики 5 progressBar выходят на завершение после достижения progressBars MAX?
Ниже приведен пример одной из Progressbars в моей деятельности.
public void doProgressBarA() {
maskBar4 = (progBar) child2.findViewById(R.id.fragmentB_progressBar4);
new Thread(new Runnable() {//Start long running op in background thread
public void run() {
final SharedPreferences nnn = getSharedPreferences("com.blagmyname.app", MODE_PRIVATE);
int spRateValue = nnn.getInt("current_name_number", 0);
while (m4progressStatus < spRateValue) {
m4progressStatus += 3;
// Update the progress bar and display the current value in the text view
mask4handler.post(new Runnable() {
public void run() {
maskBar4.setProgress(m4progressStatus);
}
});
try { // Sleep for 20 ms to display the progress slowly
Thread.sleep(8);
} catch (InterruptedException e) {
e.printStackTrace();
}
}
}
}).start();
}
////////////////////////////////////////////////////////////////////////////
Возможно, слишком часто обновляется индикатор выполнения. Я думаю, вы должны использовать asynctask для этого в любом случае. http://stackoverflow.com/questions/9671546/asynctask-android-example В нем есть метод 'onProgressUpdate()' – WalterM
Я использую его для анимации 5 ProgressBars в последовательности, вы действительно думаете, что это проблема? –
Спасибо за указатель. Я использовал следующее, потому что это было объяснительно для новичка, подобного мне. http://android-er.blogspot.co.uk/2014/04/run-multi-asynctask-as-same-time.html –