0
的線程內創建處理程序我寫了下面的代碼來顯示第一頁,然後5秒鐘後,它將顯示主菜單。但是,我收到了錯誤「無法在未調用looper.prepare()的線程中創建處理程序」。它是什麼以及如何解決它? `運行時錯誤:無法在未調用looper.prepare()
public class LoadingScreen extends Screen{
public LoadingScreen(MBGame game) {
super (game);
}
@Override
public void update(float deltaTime) {
Graphics g = game.getGraphics();
Assets.firstPage = g.newPixmap("first_page.png", PixmapFormat.RGB565);
game.setScreen(new StartupScreen(game));
new AsyncTask<Object, Object, Object>() {
protected Object doInBackground(Object... params) {
try {
Looper.prepare();
Thread.sleep(5000000);
Looper.loop();
} catch (InterruptedException e) {
// Exception handling
}
return (Object)null;
}
protected void onPostExecute(Object result) {
// This runs on UI thread
game.setScreen(new MainMenuScreen(game));
}
}.execute((Object) null);
}
@Override
public void present(float deltaTime) {
}
@Override
public void pause() {
}
@Override
public void resume() {
}
@Override
public void dispose() {
}
}
謝謝。
你的意思是不使用asynctask,只是調用doinbackground函數?如果那麼,什麼時候有差別? – George 2012-02-04 03:14:23
不,你仍然使用AsyncTask,但不要調用'Looper.prepare()'和'Looper.loop()'。爲了清楚起見,我在答案中省略了其餘的代碼。 – 2012-02-04 08:03:49