1
我想每隔一秒更新一次我的活動中的變量,並且爲此我正在使用異步任務和其中的可運行內存。我不斷收到這樣的錯誤:「不能在不同的方法中定義的內部類中引用非最終變量myRunnable」。當我將聲明更改爲final時,它顯示「局部變量myRunnable可能尚未初始化」。我該如何糾正錯誤?有沒有更好的方式來做我想做的事情?Android:在異步任務中使用可運行時出錯
import android.os.AsyncTask;
import android.os.Handler;
public class Timer extends AsyncTask<String, Process, Void>{
static int seconds=0;
TimerTask timer;
static int minutes=0;
static int hours=0;
private String timeTaken;
public Handler myhandler = new Handler();
@Override
protected Void doInBackground(String... params) {
final Runnable myRunnable = new Runnable() {
@Override
public void run() {
......
......
......
myhandler.postDelayed(myRunnable, 1000);
}
};
return null;
}
我用我的onCreate方法調用startPeriodicUpdates。然而,當我按下返回按鈕,打開在仿真器中的應用程序一遍,得到的onCreate再次調用。如何解決這個問題? – hektor 2012-04-24 02:56:35
當您按下後退按鈕時,它肯定會調用onDestroy(請參閱Google的d中的Android Activity Lifecycle圖ocumentation)。我認爲你在你的onDestroy方法中調用stopPeriodicUpdates()?否則,如果你想要的是startPeriodicUpdates()方法只在某人第一次加載你的應用程序時被調用,而不是之後(即不是某人關閉你的應用程序並再次打開它時),那麼你可能想要存儲您的應用程序的狀態更持久,如SharedPreferences對象... – epichorns 2012-04-28 01:29:59