Java Android:AsyncTask:调用onPostExecute后执行时间长
我有一个简单的Android异步任务,背景动作很长:Java Android:AsyncTask:调用onPostExecute后执行时间长,java,android,multithreading,android-asynctask,Java,Android,Multithreading,Android Asynctask,我有一个简单的Android异步任务,背景动作很长: HANDLER.post(new Runnable() { @Override public void run() { new AsyncTask<Context, Integer, GameTypeAdapter>() { @Override protected Game
HANDLER.post(new Runnable() {
@Override
public void run() {
new AsyncTask<Context, Integer, GameTypeAdapter>() {
@Override
protected GameTypeAdapter doInBackground(Context... contexts) {
return new GameTypeAdapter(contexts[0]);//Long database action
}
@Override
protected void onPreExecute() {
pbWaiter.setVisible(View.VISIBLE);
}
@Override
protected void onPostExecute(GameTypeAdapter gameTypeAdapter) {
txtGameName.setText(settings.getGameName());
cmbType.setAdapter(gameTypeAdapter);
if (settings.getGamePlugin() != null) {
cmbType.setSelection(((GameTypeAdapter) cmbType.getAdapter()).getItemPosition(settings.getGamePlugin()));
}
sldJoker.setProgress(settings.getJoker());
pbWaiter.setVisible(View.INVISIBLE);
}
}.executeOnExecutor(AsyncTask.THREAD_POOL_EXECUTOR, getActivity());
}
});
如果线程调用了onPostExecute方法,并且调用了最后一行hideWaiter,则在调试模式下1/10秒半后,UI调用的执行可见。此时,UI挂起,服务员动画停止
为什么UI线程停止
谢谢。为什么要在Runnable中创建和运行异步任务?以前从没见过这个。从UI线程启动异步任务。尝试sldJoker.setProgresssettings.getJoker;在RunnoiThread中。。。我知道onPostExecute是在UI线程本身上运行的,但如果您看到延迟,这可能是值得的trying@greenapps:请在代码中显示:我从处理程序运行进入UI线程,因为我不在其中。Mmmm。。有趣的但是什么是pbwater类型?如果线程调用了onPostExecute方法?什么意思?你在叫它吗?您不应该调用该方法,因为它将由asynctask类完成。