本文介绍了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参考的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!