Android 在使用AsyncTask.execute()之前或之后使用帧动画时,帧动画不起作用
为什么这里的Android 在使用AsyncTask.execute()之前或之后使用帧动画时,帧动画不起作用,android,performance,android-asynctask,android-thread,Android,Performance,Android Asynctask,Android Thread,为什么这里的AsyncTask会造成与之无关的代码阻塞。例如: 动画在以下代码中运行: if(!(speakMe.getStatus() == AsyncTask.Status.RUNNING) ){ ((AnimationDrawable) mImageView.getBackground()).start(); Toast.makeText(getActivity(), "In the zone!", Toast.LENGTH_SHORT).show(); //
AsyncTask
会造成与之无关的代码阻塞。例如:
动画在以下代码中运行:
if(!(speakMe.getStatus() == AsyncTask.Status.RUNNING) ){
((AnimationDrawable) mImageView.getBackground()).start();
Toast.makeText(getActivity(), "In the zone!", Toast.LENGTH_SHORT).show();
// speakMe = new SpeakQuote();
// speakMe.execute(quote);
}
但不是在这方面:
if(!(speakMe.getStatus() == AsyncTask.Status.RUNNING) ){
((AnimationDrawable) mImageView.getBackground()).start();
Toast.makeText(getActivity(), "In the zone!", Toast.LENGTH_SHORT).show();
speakMe = new SpeakQuote();
speakMe.execute(quote);
}
或在这方面:
if(!(speakMe.getStatus() == AsyncTask.Status.RUNNING) ){
speakMe = new SpeakQuote();
speakMe.execute(quote);
((AnimationDrawable) mImageView.getBackground()).start();
Toast.makeText(getActivity(), "In the zone!", Toast.LENGTH_SHORT).show();
}
请注意,我正在片段类中的ImageView的onClick中运行此代码。只是动画没有运行还是线程被阻塞?为了省去这一点,你说的是第一次单击ImageView,对吗?@k0bin线程正在工作,但动画没有运行。是的,当图像被点击时,它使用文本到语音引擎来说一些文本,这需要5,6秒。你没有回答我的第二个问题。如果动画是在您第一次单击ImageView时运行的,而不是在单击ImageView之后运行的,则显然是If的问题。如果不是,我可能需要更多的代码(AsyncTask就是一个开始)。