我有一个定义了处理程序的活动:
final Handler updateHandler = new Handler() {
public void handleMessage(Message msg) {
// Do stuff.
}
};
在我的onCreate
方法中,如果我将此处理程序分配给我的Activity之外的静态列表,它是否会泄漏(或者更确切地说,外部列表是否会永远引用我的活动)?即,:
@Override
public void onCreate(Bundle savedInstanceState) {
SomeStaticClass.addHandler(updateHandler);
}
...
public class SomeStaticClass {
static List<Handler> handlers = new ArrayList<Handler>();
public static void addHandler(Handler handler) {
handlers.add(handler);
}
}
答案 0 :(得分:2)
在我的onCreate方法中,如果我将此处理程序分配给我的Activity之外的静态列表,它是否会泄漏(或者更确切地说,外部列表是否会永远引用我的活动)?
是。不要将Handlers
放在静态数据成员中。