android实现runnable不工作?

时间:2016-04-28 08:53:32

标签: android

这是一个简单的代码来理解runnable。我试过但没有工作。你能帮助我吗这是我的代码

public class Autostart extends activity implements Runnable {
@override 
public void run  (){
System.out.println ("message");
}
}
}

这不打印任何陈述

5 个答案:

答案 0 :(得分:1)

如果您正在使用Activity,则需要在Activity生命周期方法中编写代码。创建活动时会调用onCreate()。因此,在这里启动Runnable将是正确的方法。

@Override
public void onCreate(Bundle savedInstanceState) {

    Handler handler = new Handler();

    final Runnable r = new Runnable() {
       public void run() {
         System.out.println ("message");    
       }
    };

    handler.postDelayed(r, 1000);
}

答案 1 :(得分:1)

您必须创建一个Thread对象并使用该对象调用start()。

 Thread t = new Thread(this);
 t.start();

或者只使用Handler

final Handler handler = new Handler();
        handler.postDelayed(new Runnable() {
            @Override
            public void run() {
                // Do Something here
            }
        }, 5000);

答案 2 :(得分:0)

  

您可以使用以下代码在规则的时间间隔后打印值

 public void callAsynchronousTask() {
    final Handler handler = new Handler();
     timer = new Timer();
    TimerTask doAsynchronousTask = new TimerTask() {
        @Override
        public void run() {
            handler.post(new Runnable() {
                public void run() {
                    try {

                        Log.e("on print timee", your value);
                    } catch (Exception e) {
                        // TODO Auto-generated catch block
                    }
                }
            });
        }
    };
    timer.schedule(doAsynchronousTask, 0, 1000); // will execute  after  1 sec 
}
  

希望这会对你有所帮助

答案 3 :(得分:0)

我找到了与Swayam(android implements runnable not working?)类似的解决方案,但是在@tailrec中需要另一个handler.postDelayed引用;

run()

答案 4 :(得分:0)

尝试以下代码

    Handler mainThreadhandler = new Handler(getMainLooper());
    mainThreadhandler.post(new Runnable(){
        public void run(){
            // UI work
        }
    });