Java 如何在android中为多个线程使用多个按钮?
我已经为这个项目工作了一段时间了。我被困在如何处理我的多按钮问题上。我有三个按钮需要启动不同的线程,但我在google上查看了线程和多线程的相关内容,但我找不到我想要的答案。 据我所知,对于线程,在一个类中只能调用一次public void run()?如何在一个类中创建代码不同的多个线程 我所看到的解决我的问题的最佳方法是:Java 如何在android中为多个线程使用多个按钮?,java,android,multithreading,performance,thread-safety,Java,Android,Multithreading,Performance,Thread Safety,我已经为这个项目工作了一段时间了。我被困在如何处理我的多按钮问题上。我有三个按钮需要启动不同的线程,但我在google上查看了线程和多线程的相关内容,但我找不到我想要的答案。 据我所知,对于线程,在一个类中只能调用一次public void run()?如何在一个类中创建代码不同的多个线程 我所看到的解决我的问题的最佳方法是: @Override public void onClick(View v) { // TODO Auto-generated method stub sw
@Override
public void onClick(View v) {
// TODO Auto-generated method stub
switch (v.getId()) {
case R.id.Line:
// Call to Thread line
break;
case R.id.Enter:
//Call to Thread Enter
break;
case R.id.arc
//Call to Thread Arc
}
line thread和enter thread的示例:
Thread enter = new Thread() {
public void run() {
DrawingUtils call = new DrawingUtils();
EditText cl = (EditText) findViewById(R.id.editText1);
String in = cl.getText().toString();
call.setInputCoords(in);
notifyAll();
}
};
Thread line = new Thread() {
public void run() {
info.setText("Enter X,Y,Z for Point 1");
try {
wait();
} catch (InterruptedException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
call.addLine();
info.setText("Enter X,Y,Z for Point 2");
try {
wait();
} catch (InterruptedException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
call.addLine();
}
};
line.start();
创建其他扩展类似线程的内部类
class Line extends Thread {
public void run() {
DrawingUtils call = new DrawingUtils();
EditText cl = (EditText) findViewById(R.id.editText1);
String in = cl.getText().toString();
call.setInputCoords(in);
notifyAll();
}
};
现在开始使用
newline().start()
创建其他扩展类似线程的内部类
class Line extends Thread {
public void run() {
DrawingUtils call = new DrawingUtils();
EditText cl = (EditText) findViewById(R.id.editText1);
String in = cl.getText().toString();
call.setInputCoords(in);
notifyAll();
}
};
现在开始使用
newline()。start()
您无法在启动的新线程上正常更新UI。。在开发之前,请阅读更多关于UI的信息
在代码中为文本视图设置测试
info.post(new Runnable() {
@Override
public void run() {
info.setText("Enter X,Y,Z for Point 1");
}
});
您无法在启动的新线程上正常更新UI。。在开发之前,请阅读更多关于UI的信息 在代码中为文本视图设置测试
info.post(new Runnable() {
@Override
public void run() {
info.setText("Enter X,Y,Z for Point 1");
}
});
类应该封装一个独特的功能。因此,您必须为功能不同的不同线程编写单独的类。那么,我是否能够为DrawingUtils类创建内部类,并从mainactivity类运行线程?如果是这样的话,当按下按钮时,我将如何调用线程?类应该封装一个独特的功能。因此,您必须为功能不同的不同线程编写单独的类。那么,我是否能够为DrawingUtils类创建内部类,并从mainactivity类运行线程?如果是这样的话,当按下按钮时,我将如何调用线程?感谢我知道的关于处理程序的信息,但没有读过太多关于它们的内容。感谢我知道的关于处理程序的信息,但没有读过太多关于它们的内容。