我试图通过使用extends TimerTask
的附加类来每秒执行一个方法。我认为它不起作用的原因是我试图执行一个最终将值返回给MainActivity的方法。这就是为什么:我通过使方法不返回任何东西来测试代码(只是在控制台上打印一些东西)并且它有效。
以下是使用返回方法查看代码的摘要:
public class MainActivity extends ActionBarActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
Timer timer = new Timer();
timer.schedule(new doStuff(), 0, 1000);
}
public void method1(String string){
//things happen
}
}
//----------------------------------------
class doStuff extends TimerTask{
@Override
public void run(){
String string = stringMethod();
MainActivity ma = new MainActivity();
ma.method1(string);
}
public String stringMethod(){
//gets the required string
return "String";
}
}
请注意,该方法本身并不会将值直接返回MainActivity
。 run()
就是这么做的。
当我尝试在Android设备上运行代码时,LogCat会说notify()
没有阻止某些内容。不确定。无法记住。
我只是想知道在解决这个问题之前,是否有更简单的方法不需要两个课程。
*抱歉愚蠢的名字。我只是为了演示而制作它们。
答案 0 :(得分:1)
尝试使用处理程序:
final Handler handler=new Handler();
final Runnable runnable = new Runnable()
{
public void run()
{
//This will run every 1000ms. Put code here(UI safe)
handler.postDelayed(this, 1000);
}
};
handler.postDelayed(runnable, 1000);