gpt4 book ai didi

Android:如何使用处理程序 handleMessage 并访问对 MainActivity 的引用

转载 作者:塔克拉玛干 更新时间:2023-11-02 09:02:34 25 4
gpt4 key购买 nike

我有一项服务可以从 Internet 接收命令并启动后台线程。该线程从服务传递一个处理程序(服务被绑定(bind)并传递给处理程序)并向处理程序发送消息以拍照。我坚持执行处理程序。

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 的封闭实例”

最佳答案

您可以让一个类 (Activity/Service) 实现 Handler.Callback 并通过 new Handler(this) 为它创建一个新的 Handler。

关于Android:如何使用处理程序 handleMessage 并访问对 MainActivity 的引用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17140391/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com