Ale*_* L. 2 variables static reference handler android-activity
Android:我在我的活动中定义了一个Handler类,我得到警告"Handler类应该是静态的,否则可能会发生泄漏",代码如下:
Handler messageHandler = new Handler() {
// @Override
public void handleMessage(Message msg) {
try {
... accessing variables defined at the activity level
... doing something very important
}
super.handleMessage(msg)
}
}
Run Code Online (Sandbox Code Playgroud)
但问题是我的消息处理程序有对主要活动变量的引用,所以我不能使它成为静态的.在我的情况下,如何摆脱这种警告(以正确的方式)?
小智 6
更改
Handler messageHandler = new Handler() {
// @Override
public void handleMessage(Message msg) {
try {
... accessing variables defined at the activity level
... doing something very important
}
}
}
Run Code Online (Sandbox Code Playgroud)
至
Handler mIncomingHandler = new Handler(new Handler.Callback() {
@Override
public boolean handleMessage(Message msg) {
}
});
Run Code Online (Sandbox Code Playgroud)
引用: 此Handler类应该是静态的,否则可能会发生泄漏:IncomingHandler