我需要在这里解决一些问题。我正在使用java android eclipse。
问题:如果我点击添加或减去按钮,它将执行这两种方法,对吗? 我想要的是:
问题:我是否需要使用线程?
public void Add(int a, int b){
return a + b;
}
public void Minus(int a, int b){
return a - b;
}
public void btn_add(View view){
Add(a,b);
}
public void btn_minus(View view){
Minus(a,b);
}
答案 0 :(得分:1)
我假设您已将要执行的任务简化为名为add
和minus
的方法,但这些实际上是更复杂的任务,需要非常重要的时间。 (否则,您在处理时不会再担心再次点击)。
所以,我认为你应该使用线程,但不要自己承担创建和管理工作线程的复杂性。您应该使用AsyncTask
。
所以,模式会:
public void clickAdd(View view) {
if (mTask.getStatus() != AsyncTask.Status.FINISHED) {
return;
}
mTask.execute(...);
}
private AddTask mTask = new AddTask();
private class AddTask extends AsyncTask {
public void doInBackground(...) {
}
}
答案 1 :(得分:0)
Greg Ennis的回答假设您担心,因为您的实际方法非常耗时,与add
和subtract
示例不同。
如果您不关心这一点,我应该指出,如果这些是短期运行方法,那么您根本不需要担心线程。不要指定任何Threads,Runnables或AsyncTasks。单击按钮时,将在UI线程上自动调用onClick
方法,因此在onClick
方法(因此add
之前,任何其他按钮点击都不可能发生。 } method)返回。
关于您的第1点,我认为Android不允许同时按下按钮。