微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

Android:如何使用Handler handleMessage并访问对MainActivity的引用

我有一个服务,它从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需要是静态的吗?没有静态,我得到“这个Handler类应该是静态的,否则可能会发生泄漏”
> mCamera需要静态吗?我被告知要使mCamera静止,但为什么这是必要的?有没有办法在不使mCamera静态的情况下设置takePicture?
>将引用传递给MainActivity的正确方法是什么?现在我收到错误:“在范围内无法访问MainActivity类型的封闭实例”

解决方法

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

原文地址:https://www.jb51.cc/android/317003.html

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐