如何在按钮点击事件中设置android timertask

时间:2014-08-11 20:55:58

标签: android timertask

我正在做一个项目。我有一个按钮,这个按钮点击事件ı获取数据肥皂服务。

我有一个问题。我做计时器和这个计时器3分钟点击按钮..怎么做?

 protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);

btnrefres.setOnClickListener(new View.OnClickListener(){

**//I've done operations**
}

}




TimerTask timerTask = new TimerTask() {
@Override
public void run() {
**//I do btnrefres.setOnClickListener(new View.OnClickListener());  // not run :(**
}
};
Timer timer = new Timer();
timer.schedule(timerTask, 0, 5000);

我使用但是null点错误,怎么做?

  public class HelloWorldActivity extends Activity {




      Button  btn_goster = (Button) findViewById(R.id.button1);

    /** Called when the activity is first created. */
    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main);



        btn_goster.setOnClickListener(new View.OnClickListener() {

            public void onClick(View v) {

                  Toast.makeText(getApplicationContext(),
                          "Buton click", Toast.LENGTH_LONG).show();

            }

            });


    }
    public  void butonclick () 
    { 
        runOnUiThread ( new  Runnable ()  { 
            public  void run () 
            { 
                  TimerTask timerTask =  new  TimerTask ()  { 
                    @Override 
                    public  void run ()  { 
                    btn_goster . performClick (); 
                    } 
                    }; 
                    Timer timer =  new  Timer (); 
                    timer . schedule ( timerTask ,  40000 ,  60000 ); 
            } 
        }); 
    }
}

1 个答案:

答案 0 :(得分:0)

您可以使用performClick()或callOnClick()

performClick()
  

在API级别1中添加。
  调用此视图的OnClickListener   如果它被定义。执行与之关联的所有正常操作   点击:报告辅助功能事件,播放声音等

callOnClick()
  

在API级别15中添加。   直接打电话给任何附件   OnClickListener。与performClick不同,这只调用了监听器,   并且不会执行任何相关的点击操作,例如报告   无障碍活动。

imerTask timerTask = new TimerTask() {
@Override
public void run() {
btnrefres.performClick();
}
};
Timer timer = new Timer();
timer.schedule(timerTask, 0, 5000);

第二个选项是: 在函数中添加所有soap服务。稍后在setonclicklistener和timertask run()中调用该函数。

protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);

btnrefres.setOnClickListener(new View.OnClickListener(){
soapservice();
}
}

TimerTask timerTask = new TimerTask() {
@Override
public void run() {
soapservice();
}
};
Timer timer = new Timer();
timer.schedule(timerTask, 0, 5000);


soapservice(){
**//I've done operations**
}