/**
*开启新的线程 循环添加字符串到 list
*/
new TagThread().start();
private class TagThread extends Thread {
public void run() {
while (true) {
Message msg = handler.obtainMessage();
//dd:随机的数字,可能出现重复的
msg.obj = dd.toString();
handler.sendMessage(msg);
}
}
}
}
/**
* handler接受
*/
handler = new Handler() {
@Override
public void handleMessage(Message msg) {
super.handleMessage(msg);
String result = (String) msg.obj;
//往list 中添加数据
addToList(result);
}
};
/**
* 添加到list
*
* @param str
*/
private String epc;
private ArrayList<String> tagList = new ArrayList<>();
private void addToList(String str) {
if (!TextUtils.isEmpty(str)) {
int index = checkIsExist(str);
epc = str;
if (index == -1) {
tagList.add(epc);
} else {
tagList.set(index, epc);
}
}
}
/**
* 判断EPC是否在列表中
*
* @param strEPC 索引
* @return
*/
public int checkIsExist(String strEPC) {
int existFlag = -1;
if (TextUtils.isEmpty(strEPC)) {
return existFlag;
}
String tempStr;
for (int i = 0; i < tagList.size(); i++) {
tempStr = tagList.get(i);
if (strEPC.equals(tempStr)) {
existFlag = i;
break;
}
}
return existFlag;
}
//这样就可以避免两个相同的字符串的值同时存在 tagList 中