尝试使用子类runnable

时间:2018-06-14 23:02:39

标签: android

我正在使用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();
}

1 个答案:

答案 0 :(得分:0)

这些是关于如何运行线程的一种说明。

1.创建一个实现Runnable的类(你做过)

2.实例化一个线程对象&传递一个Runnable对象)

线程上的 3.call .start()

//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对象上不存在,它存在于线程对象中。

相关问题