引言
我的主要活动类中有一个子类,它扩展了线程并在每次相机检测到移动时启动。
在这个线程中,当它连续地检测到运动时,它必须启动另一个属于主Activity类的线程。
我现在可能有点乱,但我现在详细解释
CODE
这是我的代码的简化版本,准确显示了我的意思:
public class MainActivity extends Activity {
//...
public Runnable SpeechWhenMotion = new Runnable() {
@Override
public void run() {
// Do stuff here
}
}
private static final class DetectionThread extends Thread {
//...
@Override
public void run() {
//...
//START "SpeechWhenMotion" HERE!
}
}
}
问题
所以我怀疑的是,如何在DetectionThread类的线程内启动Runnable? 我尝试过使用处理程序,但我认为我做得不对,因为它没有开始。
答案 0 :(得分:2)
如果你真的需要SpeechWhenMotion可以运行为MainActivity的nester类,你需要提供MainActivity或SpeechWhenMotion实例到DetectionThread类的链接:
private static final class DetectionThread extends Thread {
private Runnable mSpeechWhenMotionRunnable;
//...
}
然后,当您创建DetectionThread时,从主活动
为其分配SpeechWhenMotionDetectionThread detectionThread = new DetectionThread();
detectionThread.mSpeechWhenMotionRunnable = SpeechWhenMotion;
最后,在DetectionThread中调用启动新线程:
//START "SpeechWhenMotion" HERE!
new Thread(mSpeechWhenMotionRunnable).start();
答案 1 :(得分:-1)
我试了一下,这很顺利:
new Thread(SpeechWhenMotion).start();