Android的:如何使用一个处理程序的handleMessage并获得在MainActivity参考 [英] Android: How to use a Handler handleMessage and access the reference to the MainActivity

查看:761
本文介绍了Android的:如何使用一个处理程序的handleMessage并获得在MainActivity参考的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我有一个从互联网上接收到命令并启动一个后台线程的服务。该线程从服务传递的处理程序(服务是有界的,并通过该处理程序),并发送一个消息给处理程序来拍照。我被困在处理程序的实现。

I have a service which receives a command from the Internet and launches a background thread. This thread is passed a handler from the service (the service is bounded and passed the handler) and sends a message to the handler to take a picture. I'm stuck on the implementation of the handler.

static Handler handler = new Handler() {

        @Override
        public void handleMessage(Message msg) {
            //TODO: Handle different types of messages
            mCamera.takePicture(null, null, MainActivity.this);
        }
};

问题:


  • 是否处理器需要是静态的?不带静电,我得到此处理程序类应该是静态的或可能发生的泄漏

  • 不mCamera必须是静态的?我被告知要mCamera静态的,但为什么这个必要吗?有没有办法设置takePicture未做mCamera静态的?

  • 什么是通过参考MainActivity的正确方法?现在我得到的错误:类型MainActivity没有外围实例是范围访问

推荐答案

您可以做一个类(活动/服务)实施 Handler.Callback 并创建一个新的处理程序它通过新的处理程序(本)

You can make a class (Activity/Service) implement Handler.Callback and create a new Handler for it via new Handler(this).

这篇关于Android的:如何使用一个处理程序的handleMessage并获得在MainActivity参考的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
相关文章
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆