这就是我通常的做法。
我扩展了 Handler 并添加了自定义方法,让我可以轻松控制刷新状态。
您还可以轻松、动态地控制刷新周期。
public class ProgressHandler extends Handler {
private static final int START = 0;
private static final int STOP = 1;
private static final int REFRESH = 2;
public void start() {
removeMessages( STOP );
sendEmptyMessage( START );
}
public void stop() {
removeMessages( START );
removeMessages( STOP );
}
@Override
public void handleMessage(Message msg) {
super.handleMessage( msg );
switch (msg.what) {
case REFRESH:
mProgress.setProgress(mProgressStatus);
if( mProgressStatus < 100 )
sendEmptyMessageDelayed( REFRESH, 100 /* Or how much you need */ );
break;
case START:
sendEmptyMessage( REFRESH );
break;
case STOP:
removeMessages( REFRESH );
break;
default:
break;
}
}
};
我认为这是最好的方法之一,甚至比使用Timer更好,因为它可以让您更多地自定义行为。