我从其中一个模板创建了一个基本的Android Studio应用程序,并尝试从onCreate中的预构建处理程序调用一个线程(Runnable)。我所做的就是添加扩展Runnable的类,然后在处理程序中使用该类。无法弄清楚为什么我收到编译错误:
无法找到符号方法启动
这是唯一的错误,只是在线上
new Thread(example.start());
代码是:
public class MainActivity extends AppCompatActivity implements NavigationView.OnNavigationItemSelectedListener {
static class GetExample implements Runnable
{
public void run()
{
Log.i("GetExample class", "Inside GetExample::run()");
return;
}
}
@Override
protected void onCreate(Bundle savedInstanceState)
{
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
Toolbar toolbar = (Toolbar) findViewById(R.id.toolbar);
setSupportActionBar(toolbar);
FloatingActionButton fab = (FloatingActionButton) findViewById(R.id.fab);
fab.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view)
{
Log.i("Inside onCreate()", "TestBed -- onClick() invoked");
try
{
GetExample example = new GetExample();
new Thread(example.start());
}
catch (IOException ex)
{
Log.i("Inside onCreate()", "TestBed -- IOException occurred");
}
}
});
DrawerLayout drawer = (DrawerLayout) findViewById(R.id.drawer_layout);
ActionBarDrawerToggle toggle = new ActionBarDrawerToggle(
this, drawer, toolbar, R.string.navigation_drawer_open, R.string.navigation_drawer_close);
drawer.setDrawerListener(toggle);
toggle.syncState();
NavigationView navigationView = (NavigationView) findViewById(R.id.nav_view);
navigationView.setNavigationItemSelectedListener(this);
}
. . .
答案 0 :(得分:3)
new Thread(new GetExample()).start();
答案 1 :(得分:1)
我总是使用run for runnables并启动线程。 你在上面的文档中有一个,它是新的Thread(new Runnable())。start(),方法start应用于线程,而不是runnable对象
所以你可以使用run(),或者你可以创建一个线程 - 新的Thread并将runnable对象放入其中,就像你在注释中放入的文档中的示例一样。然后调用start到线程,而不是runnable。