我正在使用android studio进行编码。 我有一个实现Runnable类的类。 Android工作室说我的可运行类的start方法是未定义的。这在android和普通的java中是否有所不同?
Runnable类:
public class cThreadRandomTime implements Runnable {
int ted=0;
public void run() {
try {
Thread.sleep(1);
} catch( Exception e) {
ted++;
}
}
}
测试方法:
void test2() {
cThreadRandomTime mThreadRandomTime = new cThreadRandomTime();
// start is displayed in red
mThreadRandomTime.start();
}
答案 0 :(得分:0)
这些是关于如何运行线程的一种说明。
1.创建一个实现Runnable的类(你做过)
2.实例化一个线程对象&传递一个Runnable对象)
线程上的//create a runnable object
cThreadRandomTime mThreadRandomTime = new cThreadRandomTime();
//instantiate a thread object & pass it a runnable object
Thread myThread = new Thread(mThreadRandomTime);
//start the thread
myThread.start();
创建线程有两种方法。
1.一种方法是创建一个扩展Thread
的类2.创建一个实现Runnable的类(你这样做了)
这是使用第一种方式创建线程类的方法。(扩展线程)
class ExampleThread extends Thread{
@Override
public void run() {
//do work....
}
}
这是你使用第一种方法运行一个线程的方法(注意你这次不必将它传递给一个可运行的对象)
Thread myThread = new ExampleThread();
myThread.start();
所以你把它混合了一点,你实现了runnable并尝试运行Runnable对象,而是应该尝试运行一个Thread对象并将它传递给Runnable对象。
runnable对象被认为是您需要完成的任务或工作。
线程是任务/工作的运行方式。
它以红色突出显示start(),因为.start()在Runnable对象上不存在,它存在于线程对象中。