This Handler class should be static or leaks may occur (null)
此消息中的“类”是否指的是此处的“MyActivity”,因为 Handler 是一个对象并且我确实将其声明为静态的。我应该忽略它还是应该添加一些东西,比如“MyActivity”声明中某处的“静态”(我试过这个但出错了)。我注意到通常会针对此 lint 警告建议使用“WeakReference”。
public class MyActivity extends Activity{
...
static Handler handler;
...
handler = new Handler()
{
public void handleMessage(Message msg) {
since Handler is an object and i did declare it static
您将数据成员 声明为静态的。但是,您使用的是匿名内部类,因此您的 Handler
子类不是 static
。
代替:
handler = new Handler() {
public void handleMessage(Message msg) {
// do cool stuff
}
};
使用:
handler=new MyVeryOwnHandler();
其中 MyVeryOwnHandler
是常规 Java 类或 static
内部类:
private static class MyVeryOwnHandler extends Handler {
public void handleMessage(Message msg) {
// do cool stuff
}
};
注意错误是class需要是static
;它并没有说对象需要是static
。
我是一名优秀的程序员,十分优秀!