我正在开发一个应用程序,其中我有12位数字字节数组来读取模拟器上的按钮状态。我在socket上写这些字节数组来获得响应。我希望持续监控此结果,并希望在更改值时收到通知。目前我正在使用Timer执行相同的操作,每10秒运行一次,现在我想要做的是运行相同的方法来监控响应,但使用Android服务。
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
};
o.write(packet1);
i.read(data1, 0, 1024);
byte_to_hex = ConversionMethods.bytesToHex(data1).substring(18, 26);
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);
} catch (UnknownHostException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
this.runOnUiThread(Timer_Tick);
在Timer_Tick中的我正在设置ToggleButton on|off
基于这样的reslut
char[] c=result.toCharArray();
int count=0;
for (int i=0;i<result.length();i++)
{
count++;
char j=c[i];
if(count==1)
toggleButton=dimmerLight1;
else if(count==2)
toggleButton=fanDimmer2;
else if(count==3)
toggleButton=fanDimmer1;
if(j=='1')
toggleButton.setChecked(true);
else
toggleButton.setChecked(false);
}
如何使用服务实现此功能?任何想法和建议将不胜感激
答案 0 :(得分:0)
以下是编写服务的好例子,其功能与您的任务非常相似(“服务将在启动时启动并定期获取数据。该服务将由将自身绑定到服务的活动使用。该活动将允许从服务请求最新数据。“)http://www.vogella.com/articles/AndroidServices/article.html#tutorial_ownservice