在我的Android应用程序中,我有一个MainActivity类,该类启动了一个线程。该线程执行填充并将其显示在屏幕上。(这部分正在工作)
我想从线程访问MainActivity-Class中的方法。但是它不起作用...“无法解决方法”
这是我的代码...
线程对象:
public class SensorProcessor implements Runnable {
protected Context mContext;
protected Activity mActivity;
private volatile boolean running = true;
//Tag for Logging
private final String LOG_TAG = SensorProcessor.class.getSimpleName();
public SensorProcessor(Context mContext, Activity mActivity){
this.mContext = mContext;
this.mActivity = mActivity;
}
public void run() {
while (running){
try {
final String raw = getSensorValue();
mActivity.runOnUiThread(new Runnable() {
public void run() {
//WORKS
final TextView textfield_sensor_value;
textfield_sensor_value = (TextView) mActivity.findViewById(R.id.text_sensor);
textfield_sensor_value.setText("Sensor Value: " + raw);
Log.v(LOG_TAG, raw);
//DOES NOT WORK, WHY?
mActivity.myMethod(); //Cannot resolve method
}
});
Thread.sleep(100);
} catch (InterruptedException e) {
//When an interrupt is called, we set running to false, so the thread can exit nicely
running = false;
}
}
Log.v(LOG_TAG, "Sensor Thread finished");
}
}
MainActivity类,正在调用线程:
public class MainActivity extends Activity implements OnClickListener, OnInitListener {
public void myMethod(){
//Do stuff...
}
//Start the Thread, when the button is clicked
public void onClick(View v) {
if (v.getId() == R.id.button_start) {
runnable = new SensorProcessor(this.getApplicationContext(),this);
thread = new Thread(runnable);
thread.start();
}
}
}
为什么使用mActivity.runOnUiThread(new Runnable()-方法)不起作用,如何正确完成?
最好的祝福
类型投你mActivity
与MainActivity
喜欢((MainActivity)mActivity)
。但是请确保您不应该从线程更新UI。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句