Сначала я хочу сказать, что я часто использовал Google, чтобы найти индикатор выполнения, который заполняется сам по прошествии времени.Все результаты, которые я нашел где либо с нитью , либо с Asynctask .Будучи новичком в Android, я подумал, что это проще сделать с помощью дополнительного обработчика , который обрабатывает обновления индикатора выполнения.
Однако я не нашел никого, кто бы делал это по-своему.Может ли это нарушать правила Android?Например, могу ли я использовать несколько обработчиков одновременно?
Мой код выглядит так:
public void restarttimebar()
{
stoptimebar();
for(int i=1;i<12;i++)
{
Message msg = timebarhandler.obtainMessage(0,i,0);
timebarhandler.sendMessageDelayed(msg, i*250);
}
};
public void stoptimebar()
{
timebarhandler.removeMessages(0);
Message msg = timebarhandler.obtainMessage(0,0,0);
timebarhandler.sendMessage(msg);
};
Handler timebarhandler = new Handler()
{
@Override
public void handleMessage(Message msg)
{
ProgressBar progressbar = (ProgressBar)findViewById(R.id.timebar);
if (msg.arg1 == 0)
{
progressbar.setProgress(0);
}
if (msg.arg1 > 0)
{
progressbar.setProgress(msg.arg1*9);
}
}
};
Теперь можно вызвать restarttimebar ();(пере) запустить индикатор выполнения.Он будет заполняться в течение 3 секунд с приращениями каждые 0,25 секунды.Любые замечания с благодарностью !!
РЕДАКТИРОВАТЬ: Также добавлен stoptimebar ();просто остановить индикатор выполнения.Кроме того, стандартный размер индикатора выполнения равен 100. Поэтому я просто делаю двенадцать обновлений раз 9. Это почти 100;) В моем приложении полоса не обязательно должна быть ТОЧНОЙ.