调用其他方法时,Android动画会旋转卡住

时间:2015-12-09 14:42:13

标签: java android animation java-threads

我想要一个imageView旋转,在我的方法“fireShowAction”从“套接字”收集一些信息。

这是我的代码片段:

1st:在“onActivityCreated()”方法

上创建一个按钮
btnUpdate = (ImageView) mContext.findViewById(R.id.btnRefreshDatum);
btnUpdate.setOnClickListener(new View.OnClickListener() {
  @Override
  public void onClick(View v) {
    if ((etStart.getText().toString() != null) && !etStart.getText().toString().equalsIgnoreCase("")
            && (etEnd.getText().toString() != null) && !etEnd.getText().toString().equalsIgnoreCase("")) {

      if (!searchUpdate) {
        searchUpdate = true;

        Animation rotate = AnimationUtils.loadAnimation(mContext, R.anim.busy_rotate);
        btnUpdate.startAnimation(rotate);
        fireShowAction();
      }
      else {
        searchUpdate = false;
        btnUpdate.clearAnimation();
      }
    }
  }
});

第二名:被称为

的方法
public void fireShowAction() {
Runnable runner = new Runnable() {

  public void run() {
    System.out.println("FireShowAction !!!!!!!!!!!!!");
    Calendar tempStart;
    Calendar tempEnd;
#################
// I´ve reduced this code on the most important
#################
    getDataOfPeriod(tempStart.getTimeInMillis() / 1000, tempEnd.getTimeInMillis() / 1000, key);
    stopAnimation();
  }
};
//    btnToday.post(runner);
runner.run();
}

我试图通过“onPost()”来运行跑步者,但这不是解决方案。

最奇怪的是,如果我不调用fireShowAction(),我的动画就会正常工作。如果我调用它,动画将一直停留,直到fireShowAction()完​​成它的工作。

我认为这不是我正在寻找的一个大问题......如果有人知道解决方案,我会很高兴。

谢谢你们。

1 个答案:

答案 0 :(得分:0)

解决方案是启动线程而不是跑步者。

Thread th = new Thread(runner);
th.start();

而不是

runner.run();