【发布时间】:2013-07-20 15:35:33
【问题描述】:
我正在修改我的活动中的以下代码:
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);
那么如何重写我的初始示例以使用静态类而不是匿名内部类(以避免潜在的内存泄漏)?
【问题讨论】:
-
在之前的问题中标记正确答案可能是个好主意。
标签: java android memory-leaks android-handler android-memory