use*_*005 5 android bluetooth handler
没有关于如何使用obtainMessage带有4个参数的方法编写处理程序的示例.
我尝试了几种方法,但仍然遇到同样的错误.
Handler mHandler = new Handler() {
public final Message obtainMessage(int what,
int arg1, int arg2, Object obj) {
}
};
Run Code Online (Sandbox Code Playgroud)
这显然是错误的,但考虑到没有任何示例可以帮助我,我可以使用一点方向.
根据此页面,这些步骤是必需的:
Handler在要处理消息的线程上准确创建对象.Message从创建的Handler使用中获取实例Handler.obtainMessage.不需要在Handler所有者线程上执行此操作.它可以从任何其他线程完成.Handler.sendMessage.为了进一步详细说明这个过程,这里有两个部分的示例代码.首先是一个BluetoothThread具有最小功能的示例,只需发送一个虚构文件.第二部分是使用所述线程的按钮点击处理程序.
public class BluetoothThread extends Thread {
private Handler mHandler;
public static final SEND_CODE = 1;
public static final QUIT_CODE = 2;
@Override
public void run() {
Looper.prepare();
mHandler = new Handler() {
@Override
public void handleMessage(Message msg) {
if (msg.what == SEND_CODE) {
// Send the file using bluetooth
}
else if(msg.what == QUIT_CODE) {
Looper.quitSafely();
}
}
Looper.loop();
}
public Handler getThreadHandler() {
return mHandler;
}
}
Run Code Online (Sandbox Code Playgroud)
在主要活动中:
public void ButtonClicked(View v) {
BluetoothThread thread = new BluetoothThread();
thread.Start();
Handler hnd = thread.getThreadHandler();
hnd.sendMessage(hnd.obtainMessage(BluetoothThread.SEND_CODE, 0, 0, null));
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
9510 次 |
| 最近记录: |