不知何故它不起作用,据我说应该是这样的:
public void Splash(){
Timer timer= new Timer();
timer.schedule(new TimerTask(){
MexGame.this.runOnUiThread(new Runnable() {
public void run(){
SplashImage.setImageDrawable(aktieknop);
} //Closes run()
}); //Closes runOnUiThread((){})
},SplashTime); //Closes the Timeratask((){})
} //closes Splash()
有人知道我在想什么吗?
正式评论
我知道一个愚蠢的问题,或者也许我正在做一些不可能的事情,但是我尝试了所有合乎逻辑的可能性。因此可能遗漏了一些东西,或者我正试图做一些不可能的事情。
你能帮我一下吗。
我正在尝试使用以下代码,但这会带来 token 问题:
Timer timer= new Timer();
timer.schedule(new TimerTask(){
runOnUiThread(new Runnable() {
public void run(){
SplashImage.setImageDrawable(aktieknop);}
});}
},SplashTime);
如果我阻止runOnUiThread,则由于我试图从另一个线程改编UI而导致崩溃,但是至少没有 token 问题,有人知道吗?
Timer timer= new Timer();
timer.schedule(new TimerTask(){
// runOnUiThread(new Runnable() {
public void run(){
SplashImage.setImageDrawable(aktieknop);}
// });}
},SplashTime);
最佳答案
TimerTask和Runnable都需要您实现run方法,因此您将需要两个run
方法。
如果将Runnable的构造与TimerTask的构造分开,您的代码也将更易于阅读。
final Runnable setImageRunnable = new Runnable() {
public void run() {
splashImage.setImageDrawable(aktieknop);
}
};
TimerTask task = new TimerTask(){
public void run() {
getActivity().runOnUiThread(setImageRunnable);
}
};
Timer timer = new Timer();
timer.schedule(task, splashTime);