Java 用按钮开始线程

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

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