Handler mHandler = new Handler() {
public void handleMessage(android.os.Message msg) {
if (msg.what == 1) {
point1.setText(msg.obj.toString());
}
};
};
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
start = (Button) findViewById(R.id.start);
stop = (Button) findViewById(R.id.stop);
point1 = (EditText) findViewById(R.id.point1);
new Thread() {
public void run() {
while (true) {
String points = Change1();
Message msg = Message.obtain();
msg.what = 1;
msg.obj = points;
mHandler.sendMessage(msg);
try {
Thread.sleep(1000);
} catch (InterruptedException e) {
e.printStackTrace();
}
}
}
}.start();
}
// 数据处理
public static int CharToHex(char Char) {
if (Char >= '0' && Char <= '9')
return Char - '0';
else if (Char >= 'A' && Char <= 'F')
return Char - 'A' + 10;
else if (Char >= 'a' && Char <= 'f')
return Char - 'a' + 10;
else
return 0;
}
public static String Change1() {
String str1 = "p1r!p1r003B1s!p1r!p2r00003!p1r!p1r001A1s!p1r!p2r00003!"
+ "p1r!p1r003B1s!p1r!p2r00003!p1r!p1r003B1s!p1r!p2r00003!p1r!p1r001E1v!p1r!p1r001E1v!";
String hexString = str1.replace(" ", "");
String ret = "";
char[] hexChars = hexString.toCharArray();
String p = "";
for (int i = 0; i < hexChars.length;) {
if ((hexChars[i] == 'p') && (hexChars[i + 1] == '1')
&& (hexChars[i + 2] == 'r') && (hexChars[i + 3] == '!')) {
p = Integer.toString((CharToHex(hexChars[i + 7]) << 12)
| (CharToHex(hexChars[i + 8]) << 8)
| (CharToHex(hexChars[i + 9]) << 4)
| CharToHex(hexChars[i + 10]));
i = i + 14;
} else {
i = i + 1;
}
}
return p;
}
我的方法每次返回的值不同,Handler应该每隔一秒更新,为什么我的不行,是代码的原因吗?方法我测过了,是正确的,每次都返回不同的值!