アクティビティ内の変数を 1 秒ごとに更新したいので、そのために Async タスクとその中で実行可能ファイルを使用しています。「別のメソッドで定義された内部クラス内の非最終変数 myRunnable を参照できません」というこのエラーが表示され続けます。宣言を final に変更すると、「ローカル変数 myRunnable が初期化されていない可能性があります」と表示されます。エラーを修正するにはどうすればよいですか? 私がやりたいことをするより良い方法はありますか?
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;
}