Android 阻止,直到onAnimationEnd中的任务完成
我有一个登录活动,其中有一个显示徽标图片的动画,在动画运行期间,登录过程在后台运行。我想等到动画和登录过程都完成后再执行程序的下一部分。Android 阻止,直到onAnimationEnd中的任务完成,android,multithreading,animation,Android,Multithreading,Animation,我有一个登录活动,其中有一个显示徽标图片的动画,在动画运行期间,登录过程在后台运行。我想等到动画和登录过程都完成后再执行程序的下一部分。 我的第一次尝试是将登录进程放在线程中,并在onAnimationEnd中使用thread.join()阻止,直到线程完成。 这似乎是一个很好的解决方案,但是因为我使用了thread.join(),主UI线程被阻塞,因此可能发生ANR。我尝试使用AsyncTask,但是它无法处理onAnimationEnd事件。还有别的办法解决这个问题吗? 代码如下: prot
我的第一次尝试是将登录进程放在线程中,并在
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();
}
........
}
只需使用AsyncTask并执行以下操作:
@Override
protected void onPreExecute() {
title.startAnimation(set);
}
@Override
protected void onPostExecute(String result) {
title.clearAnimation();
}
为什么不在登录过程结束时完成加载动画呢done@FrancisFuerte我不想中断动画,需要完整显示为什么需要再次加入线程?阻止直到线程完成这是一个很好的建议,但是动画将强制完成。我需要动画完成。