さまざまなwifiスキャンのBSSIDと信号強度を保持しようとしています。ただし、最近の 4 つのスキャンだけを気にします。4 回スキャンすると問題なく動作しますが、その後、奇妙なことが起こり始め、各スキャンのサイズ (結果の数) は、約 6 回のスキャン後に同じになります。このコードに何か問題がありますか? 結果をセットのリストに保存します (データを処理するときは、最新の 4 つのセットのみを保持します)
public class MainActivity extends Activity {
List<HashSet<Pair>> addresses = new ArrayList<HashSet<Pair>>();
List <ScanResults> results;
...
@Override
public void onCreate(Bundle savedInstanceState) {
//This whole part of the code is run once every ten seconds through use of a timer
mainWifi.startScan();
results = mainWifi.getScanResults();
int entry = addresses.size();
if (entry == 4) { // already has 4 addresses
addresses.remove(0); // remove the
// oldest
// set
entry = 3;
}
addresses.add(entry, new HashSet<Pair>());
for (int i = 0; i < results.size(); i++) {
addresses.get(entry).add(new Pair(results.get(i).BSSID,results.get(i).level));
}
}