-1
我正在閱讀很多關於volatile變量的論壇和教程,但仍然不適合我。我正在使用Java在Android studio中開發Android應用程序。在Java中使用volatile變量
我有主要的UI線程,並從那裏我使用Runnable創建另一個。 我需要在這兩個線程之間分配兩個變量。 UI線程更改這些變量,另一個線程讀取這些變量。
這是我的代碼片段。代碼不完整(不是所有關於傳感器的行 - bcs都能正常工作)。我只是不知道如何連接兩個線程中的x,y,UI中的更改將在另一個線程中可見。
感謝您的任何建議。
class MyThread implements Runnable {
public static volatile float x = 0;
public static volatile float y = 0;
GLSurfaceView mGLView;
public MyThread(float xPos, float yPos, GLSurfaceView GLView) {
x=xPos;
y=yPos;
mGLView = GLView;
}
public void run() {
while(true){
((MyGLSurfaceView)mGLView).mRenderer.ball.translateM(x, y, 0);
}
}
}
public class MainActivity extends Activity implements SensorEventListener {
private GLSurfaceView mGLView;
public static volatile float x = 0;
public static volatile float y = 0;
public void onCreate(Bundle savedInstanceState) {
r = new MyThread(x, y, mGLView);
new Thread(r).start();
}
public void onSensorChanged(SensorEvent event) {
r.x = -(float)(event.values[2]/(1000*90.0));
r.y = (float)(event.values[1]/(1000*180.0));
}
}
這是一個複合操作 – xTrollxDudex