【发布时间】:2013-06-12 23:40:02
【问题描述】:
我有一个从 Internet 接收命令并启动后台线程的服务。该线程从服务传递一个处理程序(服务有界并传递处理程序)并向处理程序发送消息以拍照。我被困在处理程序的实现上。
static Handler handler = new Handler() {
@Override
public void handleMessage(Message msg) {
//TODO: Handle different types of messages
mCamera.takePicture(null, null, MainActivity.this);
}
};
问题:
- Handler 需要是静态的吗?没有静态,我得到“这个处理程序类应该是静态的,否则可能会发生泄漏”
- mCamera 需要是静态的吗?我被告知要使 mCamera 成为静态的,但为什么这是必要的?有没有办法在不使 mCamera 静态的情况下设置 takePicture?
- 将引用传递给 MainActivity 的正确方法是什么?现在我收到错误消息:“在范围内没有可以访问 MainActivity 类型的封闭实例”
【问题讨论】: