アクティビティで次のコードを変更しています。
new Handler().postDelayed(new Runnable() {
public void run() {
txtStatus.setText("hello");
}
}, 1000);
に:
static Runnable myRunnable = new Runnable() {
public void run() {
txtStatus.setText("hello");
};
new Handler().postDelayed(myRunnable, 1000);
非静的変数を参照しているため、これは明らかに機能しません。
これも機能しません:
public void setText() {
txtStatus.setText("hello");
}
static Runnable myRunnable = new Runnable() {
public void run() {
setText(); // doesn't work
MyActivity.this.setText(); // still doesn't work
};
new Handler().postDelayed(myRunnable, 1000);
では、匿名の内部クラスの代わりに静的クラスを使用するように最初の例をどのように書き直したらよいでしょうか (メモリ リークの可能性を回避するため)。