我想要一个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()完成它的工作。
我认为这不是我正在寻找的一个大问题......如果有人知道解决方案,我会很高兴。
谢谢你们。
答案 0 :(得分:0)
解决方案是启动线程而不是跑步者。
Thread th = new Thread(runner);
th.start();
而不是
runner.run();