我正在开发基于套接字的 android 应用程序,我需要在其中获取按钮的状态,无论是打开还是关闭。所以我想要的是我只想要运行线程的更新结果意味着如果任何按钮的状态发生变化,那么我应该被通知我可以相应地设置按钮状态。
这是我的主要课程,每秒检查一次结果。
public static void main(String[] args) {
// TODO Auto-generated method stub
System.out.println("connected");
try {
s = new Socket("192.168.1.19", 502);
i = s.getInputStream();
iD = new DataInputStream(i);
o = s.getOutputStream();
oD = new DataOutputStream(o);
System.out.println("connected");
} catch (UnknownHostException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
myTimer = new Timer();
myTimer.schedule(new TimerTask() {
@Override
public void run() {
Thread cThread = new Thread(new ClientThread());
cThread.start();
}
}, 0,1000);
}
在这里,我使用TimerTask
了每秒运行的。但不想使用定时器任务。
这是ClientThread.java
public class ClientThread implements Runnable {
PollThread pollThread;
String byte_to_hex,swapped_result,result;
@Override
public void run()
{
// TODO Auto-generated method stub
try
{
byte[] data1 = new byte[1024], packet1 =
{
(byte) 0x00,(byte) 0x00,(byte) 0x00,
(byte) 0x00,(byte) 0x00,(byte) 0x06,
(byte) 0x01,(byte) 0x01,(byte) 0x00,
(byte) 0x00,(byte) 0x00,(byte) 0x19
};
PollThread.o.write(packet1);
PollThread.i.read(data1, 0, 1024);
/*Log.v("::::TX::::", ConversionMethods.bytesToHex(data1).substring(0, 26));
Log.v("::::RX::::", ConversionMethods.bytesToHex(packet1));*/
byte_to_hex = ConversionMethods.bytesToHex(data1).substring(18, 26);
System.out.println(byte_to_hex);
char[] arr = byte_to_hex.toCharArray();
for (int i = 0; i < arr.length - 1; i += 2)
{
char temp = arr[i];
arr[i] = arr[i + 1];
arr[i + 1] = temp;
}
swapped_result=new String(arr);
result = ConversionMethods.hexStringToNBitBinary(swapped_result, 32);
System.out.println(result);
}
catch (UnknownHostException e) {
// TODO: handle exception
System.out.println("In Catch Block");
e.printStackTrace();
}
catch (IOException e) {
// TODO: handle exception
System.out.println("In Catch Block");
e.printStackTrace();
}
}
}
当任何按钮的状态发生变化时,我会得到不同的结果。所以我想要这个更新的状态值。所以基于此我可以执行一些操作。
谢谢