【发布时间】:2015-05-25 09:00:24
【问题描述】:
在我的代码的特定部分需要在一个定时空间中运行 3 个动作,现在我正在使用这种方法:
Handler mHander = new Handler();
public void startChainActions(){
// do first action
mHandler.postDelayed(new Runnable() {
@Override
public void run() {
//do action 2
mHandler.postDelayed(new Runnable() {
@Override
public void run() {
//do action 3
}
}
}, 1500);
}
}
}, 5000);
}
public void cleanResources(){
mHandler.removeCallbacksAndMessages(null);
mHandler==null
}
使用这种方法时,我经常在我的 logcat 上看到这条消息:
W/art﹕ Suspending all threads took: 12.272ms
这让我相信它会降低性能。 有没有更好的方法来计时?
【问题讨论】:
-
您能解释一下为什么在方法的执行之间有必要“休眠”吗?
-
您是否尝试过使用 CountdownTimer?
-
原因是我需要在视图上使用 AnimationDrawble,使用两个有限时间的动画并让最后一个无限运行,所以第一个运行完成,第二个替换它,然后那个完成,第三个无限开始,我没有尝试使用 CountdownTimer,这样更好吗?有什么区别?
-
AnimationSet有帮助吗? developer.android.com/reference/android/view/animation/… -
我使用的是 AnimationDrawbles,而不是 Animations...
标签: android handler android-handler android-runtime