AsyncTask
プログレスバーでフェードインするdoInBackground 内から関数を呼び出そうとしています。この関数を呼び出すたびに、必要に応じてプログレスバーがフェードインしてから消えます。メソッドが完了するGONE
とすぐにプログレスバーの可視性が元に戻ったことを示すチェックを最後に追加しました。runOnUIThread
プログラムをリセットして終了
これはなぜですか?プログレスバーが表示されたままになるようにするにはどうすればよいですか?
私は以下を使用しています:
@TargetApi(12)
private void fadeInProgressBar(final int time, ProgressBar prog){
System.out.println("MainActivity: Fading In ProgressBar");
runOnUiThread(new Runnable(){
@Override
public void run() {
if(usingHigherApiThan(12)&&prog.getVisibility()==View.GONE){
prog.setVisibility(View.VISIBLE);
if(prog.getAlpha()<1){
prog.animate().setDuration(time).alpha(1);
}
}else if(prog.getVisibility()==View.GONE){
prog.setVisibility(View.VISIBLE);
final AlphaAnimation animation = new AlphaAnimation(0F, 1F);
animation.setDuration(time);
animation.setFillAfter(true);
prog.startAnimation(animation);
}
}
});
if(prog.getVisibility()==View.VISIBLE){
System.out.println("Left Prog Visible");
}else{
System.out.println("Reset Prog To Gone");
}
}
ビルドusingHigherApiThan(12)
バージョンが 12 以上であることを確認するだけで、この問題は 12 より上と 11 より下の両方で発生します。