Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/225.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android 阻止,直到onAnimationEnd中的任务完成_Android_Multithreading_Animation - Fatal编程技术网

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我不想中断动画,需要完整显示为什么需要再次加入线程?阻止直到线程完成这是一个很好的建议,但是动画将强制完成。我需要动画完成。