不知怎的,它不起作用,据我说它应该是这样的:
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()
有人知道我遗失了什么吗?
正式评论 我知道愚蠢的问题,或者说我做的事情不可能,但我尝试了所有合乎逻辑的可能性。所以可能遗漏了一些东西,或者我正在尝试做一些不可能的事情。 你能帮帮我吗? 我正在尝试使用以下代码,但这会产生令牌问题:
Timer timer= new Timer();
timer.schedule(new TimerTask(){
runOnUiThread(new Runnable() {
public void run(){
SplashImage.setImageDrawable(aktieknop);}
});}
},SplashTime);
如果我阻止runOnUiThread,它崩溃了,因为我试图从另一个线程调整UI,但至少没有令牌问题,任何人都有任何想法?:
Timer timer= new Timer();
timer.schedule(new TimerTask(){
// runOnUiThread(new Runnable() {
public void run(){
SplashImage.setImageDrawable(aktieknop);}
// });}
},SplashTime);
答案 0 :(得分:9)
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);
答案 1 :(得分:1)
SplashTime
之前你有多余的“}”。您已经评论了一个打开“{”和两个结束“}”,因此您的原始代码有一个不需要的“}”。
Timer timer= new Timer();
timer.schedule(new TimerTask(){
runOnUiThread(new Runnable() {
public void run(){
SplashImage.setImageDrawable(aktieknop);
} //closes run(){}
}); //closes runOnUiThread( Runnable(){ });
}, //closes TimerTask(){}
SplashTime);