Crea una clase aparte que contenga la propiedad que quieres manipular entre varios hilos:
Código Java:
Ver originalpublic class Objeto {
public volatile int MI_VARIABLE;
}
Y en tu código pasas una instancia de dicho objeto (con el valor de obj.MI_VARIABLE que quieras):
Código Java:
Ver originalpublic class MainActivity extends AppCompatActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
Objeto obj = new Objeto();
obj.MI_VARIABLE = 0; // inicialmente, la establecemos a 0
Log.println(Log.INFO, "infor", "MI_VARIABLE: " + obj.MI_VARIABLE);
MiClase hilo1 = new MiClase(params1, obj); // pasamos el objeto
hilo1.setName("Hilo1");
hilo1.start();
params2.add(hilo1);
MiClase hilo2 = new MiClase(params2, obj); // pasamos el objeto
hilo2.setName("Hilo2");
hilo2.start();
while(obj.MI_VARIABLE == 0) {
Log.println(Log.INFO, "infor", "MI_VARIABLE es igual a 0");
}
}
}
Luego desde MiClase, en lugar de importar (import static com.example.miproyecto.MainActivity.MI_VARIABLE), directamente recibes el objeto y modificas la propiedad MI_VARIABLE de dicho objeto (obj.MI_VARIABLE = 123123).
Código Java:
Ver originalpublic class MiClase {
public MiClase
(List lista, Objeto obj
){ // ...
obj.MI_VARIABLE = 123123; // esto se debería reflejar en todos los hilos
// ...
}
}