0
我想通過使用extends TimerTask
的其他類來執行每秒的方法。我認爲它不起作用的原因是我試圖執行一個方法,最終將一個值返回給MainActivity。這就是爲什麼:我通過使該方法不返回任何東西(只是將某些東西打印到控制檯)來測試代碼,並且它工作正常。有代碼在x秒後執行 - Java,Android
這裏是我的代碼看起來像返回的方法摘要:
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()
沒有阻止的內容。不確定。不記得了。 我只想知道在解決這個問題之前是否有一個更簡單的方法,不需要兩個類。
*對不起,愚蠢的名字。我只是爲了演示目的而製作它們。
我貼你的代碼的Android Studio和它強調''從handler.postDelay(這一點,1000)handler''並說:'錯誤:(56 17 )錯誤:局部變量處理程序是從內部類中訪問的;需要宣佈最終'。我應該如何解決這個問題? **編輯:**我把'最後'放在'Handler handler = new Handler();'的前面,它工作正常!謝謝! – 2014-10-20 14:47:28
它報告解決方案。最終處理程序= new Handler() – 2014-10-20 14:49:23