プログレスバーのタイマーを設定する方法はありますか?たとえば、10秒間待ってから、プログレスバーを閉じますか?誰かが私にその簡単なコードを教えてくれたら幸いです。
よろしくお願いします:)
プログレスバーのタイマーを設定する方法はありますか?たとえば、10秒間待ってから、プログレスバーを閉じますか?誰かが私にその簡単なコードを教えてくれたら幸いです。
よろしくお願いします:)
UIスレッドでハンドラーを作成し、sendMessageDelayedを介して呼び出すことができます。
...
final Handler h = new Handler() {
@Override
public void handleMessage(Message message) {
mProgressBar.dismiss();
}
};
h.sendMessageDelayed(new Message(), 10000);
...
このコードはtestetではありません。
Handlerクラスを使用します。
import android.os.Handler;
import android.os.Message;
public class someClass implements Handler.Callback {
public static final int MSG_HIDE_PBAR = 0;
static final long PBAR_DELAY = 10 * 1000; //Delay is is milliseconds
//Probably should initialize this in your creation code (onCreate if activity)
//and likewise set it to null when destroyed (onDestroy if activity)
private Handler mHandler = new Handler(this);
public void showPbar(){
//Show your progress bar here
mHandler.sendEmptyMessageDelayed(MSG_HIDE_PBAR, PBAR_DELAY);
}
public boolean handleMessage(Message msg){
switch (msg.what){
case MSG_HIDE_PBAR:
//hide your progress bar here, call postInvalidate instead of
//invalidate because we are in a different thread
break;
}
return true;
}
}
クイック:はい、ダーティ:はい、仕事を終わらせます:はい
おそらく、スリープ呼び出しまたはクロックをチェックするループを使用したAsyncTaskで同じことを達成できます。Handler
私にはきれいに見えます。
はい、次のように10秒後に却下するためThread
にOnUiThreadを使用して実行できます。
public void myThread() {
Thread th = new Thread() {
@Override
public void run() {
try {
while (mRunning) {
Thread.sleep(10L);//10s wait
YourCurrentActivity.this.runOnUiThread(new Runnable() {
@Override
public void run() {
// TODO Auto-generated method stub
//DISMISS PROGRESS BAR HERE
mRunning = false;
}
});
}
} catch (InterruptedException e) {
// TODO: handle exception
}
}
};
th.start();
}