我有一个登录活动,其中有一个显示徽标图片的动画,并且在动画运行期间登录过程在后台运行。我想等到动画和登录过程都完成后才能执行程序的下一部分。
我的第一次尝试是将登录过程放在一个线程中,并onAnimationEnd
用于thread.join()
阻塞直到线程完成。
这似乎是一个很好的解决方案,但是由于我使用thread.join()
,主 UI 线程被阻塞,因此可能会发生 ANR。我尝试使用AsyncTask
,但它无法处理onAnimationEnd
事件。有没有其他方法可以解决问题?
代码是这样的:
protected void onCreate(Bundle savedInstanceState) {
........
title.startAnimation(set);
loginProcess.start();
........
}
public void onAnimationEnd(Animation animation) {
try {
loginProcess.join();
} catch (InterruptedException e) {
e.printStackTrace();
}
........
}