在android中每次可变的持续时间后安排一个asynctask吗?

时间:2013-10-01 07:08:09

标签: android android-asynctask

我在android中使用timeschedular在我的app中安排AsyncTask。我能够很好地解决这个问题,现在我希望每次运行任务的持续时间都能改变我正在使用此代码

  ip=3000;
    final Handler handler = new Handler();
    Timer timer = new Timer();
    TimerTask doAsynchronousTask = new TimerTask() {       
    @Override
    public void run() {
        handler.post(new Runnable() {
            public void run() {       
                try {
                    play_duration=durat.get(vn);
                     ip=Integer.valueOf(play_duration);
                       ip=ShowImages.ip*1000;
                    Showtime s1 = new Showtime();
                    s1.execute(what,f12,transi,play_duration);
                } catch (Exception e) {
                    // TODO Auto-generated catch block
                }
            }
        });
    }
};
timer.schedule(doAsynchronousTask, 0,ip);

我试图在线程中每次都改变ip变量的值,但它不会改变,我不知道为什么我的线程总是在ip的初始值之后运行,即3000毫秒,有人可以建议一种方法做吧..谢谢

1 个答案:

答案 0 :(得分:0)

更改UI上的组件使用runOnUiThread, 看到hereherehere在后台执行该操作,您可以使用类似的内容 -

while(true) 
{
  runOnUiThread() {
    do some stuf here;
  }
  Thread.Sleep(300); //<--- that should be nothing for the user and enough for the cpu 
}

如果您需要更准确的答案,请发布您的代码,并指导您完成