这是一个简单的代码来理解runnable。我试过但没有工作。你能帮助我吗这是我的代码
public class Autostart extends activity implements Runnable {
@override
public void run (){
System.out.println ("message");
}
}
}
这不打印任何陈述
答案 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
}
});