不知何故它不起作用,据我说应该是这样的:

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);

09-10 12:38
查看更多