私は最初に時間が経つと自分自身を埋めるプログレスバーを見つけるために多くのGoogleを使ったと言いたいと思います。 スレッドまたはAsynctaskのいずれかを使用して検索したすべての結果Androidの新機能であるため、進捗バーの更新を処理するハンドラーを追加することで、より簡単に達成できると思っていました。AndroidアプリケーションのハンドラでProgressBarのカウントダウン
しかし、自分のやり方をしている人は見つかりませんでした。 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);
}
}
};
今1は、(restarttimebarを呼び出すことができます)。プログレスバーを(再)開始します。 0.25秒ごとにインクリメントされて3秒間が経過します。どんな発言も大歓迎!!
編集:また、stoptimebar()も追加されました。プログレスバーを停止するだけです。また、プログレスバーの標準サイズは100です。したがって、私はちょうど12のアップデート時間を9にします。それはほぼ100です;)バーは私のアプリケーションで非常に正確である必要はありません。
備考私は実際のデバイス(LG 2倍速)とEclipseのエミュレータでそれをテストし、正常に動作します。それから私はそれをこのままにしておきます:) この種のものをGoogleの人々に役立てることができます。 (7時間前はいくつかの場所で夜だったので、おそらくこの投稿を見たことはありませんでした:P) – schijndelvanjos