BroadcastReceiver et porté des variable
Bonjour,
j'ai un petit problème en ce qui concerne la porté des variables dans un BroadcastReceiver.
Code :
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46
| public class BluetoothUtilities
{
private BluetoothAdapter _bluetoothAdapter;
private Vector<String> _deviceDiscovered;
private Activity _act;
private final BroadcastReceiver _Receiver = new BroadcastReceiver()
{
public void onReceive(Context context, Intent intent)
{
String action = intent.getAction();
if(BluetoothDevice.ACTION_FOUND.equals(action))
{
BluetoothDevice device = intent.getParcelableExtra(BluetoothDevice.EXTRA_DEVICE);
_deviceDiscovered.add(device.getAddress());
//((Main) _act).displayTextViewResult("--"+device.getAddress());
}
else if (BluetoothAdapter.ACTION_DISCOVERY_FINISHED.equals(action))
{
((Main) _act).displayTextViewResult("------"+_deviceDiscovered.size()+"\n");
}
}
};
public BluetoothUtilities(Activity act)
{
_act = act;
_deviceDiscovered = new Vector<String>();
_bluetoothAdapter = BluetoothAdapter.getDefaultAdapter();
IntentFilter filter = new IntentFilter(BluetoothDevice.ACTION_FOUND);
_act.registerReceiver(_Receiver, filter);
filter = new IntentFilter(BluetoothAdapter.ACTION_DISCOVERY_FINISHED);
_act.registerReceiver(_Receiver, filter);
}
....
.... |
J'ai donc une classe avec un vector et un BroadcastReceiver. Lors d'une réception de données, j'ajoute un string à mon vector, mais lorsque j'ai fini de scanner le reseaux bluetooth, j'affiche la taille et çà me donne des valeur incohérentes.
Si par exemple j'ai ajouté 4 éléments dans mon vector, la size() me retourn 0, 2 ou autre choses, comme si la modification n'avait pas était prise en compte.
Donc je pense qu'il doit y avoir un conflit quant on utilise un objet dans le BroadcastReceiver, mais j'ai rien trouvé et là je suis bloqué ...
Merci ;)