Java 用按钮开始线程
我正在用Java/eclipse编写一个小型android应用程序。 在我的应用程序的一部分中,我需要一个线程,因为我以以下方式构建:Java 用按钮开始线程,java,android,eclipse,Java,Android,Eclipse,我正在用Java/eclipse编写一个小型android应用程序。 在我的应用程序的一部分中,我需要一个线程,因为我以以下方式构建: protected void onResume() { super.onResume(); // we're going to simulate real time with thread that append data to the graph new Thread(new Runnable() { @Override public v
protected void onResume() {
super.onResume();
// we're going to simulate real time with thread that append data to the graph
new Thread(new Runnable() {
@Override
public void run() {
// we add 100 new entries
for (int i = 0; i < 100; i++) {
runOnUiThread(new Runnable() {
@Override
public void run() {
addEntry();
}
});
// sleep to slow down the add of entries
try {
Thread.sleep(1000);
} catch (InterruptedException e) {
// manage error ...
}
}
}
}).start();
}
protectedvoid onResume(){
super.onResume();
//我们将使用将数据附加到图形中的线程来模拟实时
新线程(newrunnable()){
@凌驾
公开募捐{
//我们添加了100个新条目
对于(int i=0;i<100;i++){
runOnUiThread(新的Runnable(){
@凌驾
公开募捐{
加法();
}
});
//sleep可减慢条目的添加速度
试一试{
睡眠(1000);
}捕捉(中断异常e){
//管理错误。。。
}
}
}
}).start();
}
到目前为止,一切正常。但是现在我不想自动启动这个线程。我想用按钮处理“.start()”。
我怎样才能实现它?
我对Java和Android非常陌生
提前谢谢 您可以将Handler与Runnable一起使用,而不是您的线程想法,请查看以下代码,它符合您的目的
private Handler broadcastHandler;
private Runnable broadcastRunnable;
protected void onResume() {
super.onResume();
broadcastRunnable = new Runnable() {
@Override
public void run() {
// Your UI related operations
runOnUiThread(new Runnable() {
@Override
public void run() {
addEntry();
}
});
// Add some delay
broadcastHandler.postDelayed(broadcastRunnable, 1000);
}
}
public void onButtonClick(View view) {
broadcastHandler.postDelayed(broadcastRunnable, 1000);
}
阅读androidThread中有关asynctask的文档。在UI线程上睡眠听起来是个坏主意……然后不要在resume中使用单独的方法执行此线程,并在单击按钮时调用该方法。您可以创建一个
线程实例线程t=新线程(…)
并在按下按钮时启动此线程t.start()