android 这个思路使用 Message 和 Handler 咋挂了?

谁学逆向工程 2019-06-19 03:00:29

mHandler 中每行 if 语句都设了断点,但是只触发了一次
package com.example.yingpindengji;

import android.os.Handler;
import android.os.Message;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.widget.EditText;
import android.widget.Spinner;

import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;
import java.util.ArrayList;


public class MainActivity extends AppCompatActivity {
Spinner lstYingPinKeXi, lstYingPinZhiWei, lstXingBie, lstXueLi, lstXueWei;
EditText ediXingMing, ediChuShengRiQi, ediNianLing, ediBiYeXueXiao, ediZhuanYe, ediBiYeShiJian, ediTeChang, ediLianXiFangShi;

final int iYiJiKeShi = 0x1;
final int iErJiKeShi = 0x2;
final int iYingPinZhiWei = 0x3;
final int iXingBie = 0x4;
final int iXueLi = 0x5;
final int iXueWei = 0x6;

Handler mHandler = new Handler() {
public void handleMessage(Message msg) {
if (msg.what == iYiJiKeShi) {
String[] arrYiJiKeShi = (String[]) ((ArrayList<String>) msg.obj).toArray();

} else if (msg.what == iYingPinZhiWei) {
String[] arrYingPinZhiWei = (String[]) ((ArrayList<String>) msg.obj).toArray();
} else if (msg.what == iXingBie) {
String[] arrXingBie = (String[]) ((ArrayList<String>) msg.obj).toArray();
} else if (msg.what == iXueLi) {
String[] arrXueLi = (String[]) ((ArrayList<String>) msg.obj).toArray();
} else if (msg.what == iXueWei) {
String[] arrXueWei = (String[]) ((ArrayList<String>) msg.obj).toArray();
}
}
};
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
initControlHanlde();//初始化控件句柄

new Thread(new Runnable() {
@Override
public void run() {




Message msg = new Message();
msg.what = iYiJiKeShi;
msg.obj = ArrLstYiJiKeShi;
mHandler.sendMessage(msg);

msg.what = iYingPinZhiWei;
msg.obj = ArrLstYingPinZhiWei;
mHandler.sendMessage(msg);

msg.what=iXingBie;
msg.obj=ArrLstXingBie;
mHandler.sendMessage(msg);

msg.what=iXueLi;
msg.obj=ArrLstXueLi;
mHandler.sendMessage(msg);

msg.what=iXueWei;
msg.obj=ArrLstXueWei;
mHandler.sendMessage(msg);

con.close();
} catch (ClassNotFoundException e) {
//数据库驱动类异常处理
System.out.println("Sorry,can`t find the Driver!");
e.printStackTrace();
} catch (SQLException e) {
//数据库连接失败异常处理
e.printStackTrace();
} catch (Exception e) {
// TODO: handle exception
e.printStackTrace();
}

}
}).start();
}

void initControlHanlde() {

}
}

...全文
152 1 打赏 收藏 转发到动态 举报
写回复
用AI写文章
1 条回复
切换为时间正序
请发表友善的回复…
发表回复
桓木 2019-06-19
  • 打赏
  • 举报
回复
Message msg = handler.obtainMessage();你的用法太奇葩了,创建多个Message 也行啊。

80,349

社区成员

发帖
与我相关
我的任务
社区描述
移动平台 Android
androidandroid-studioandroidx 技术论坛(原bbs)
社区管理员
  • Android
  • yechaoa
  • 失落夏天
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧