我的计时器不起作用

时间:2012-07-12 12:31:31

标签: android image timer timertask

我用2个任务激活一个计时器。

  1. 下载1张图像/秒,并为每张图像显示此图像 在SD卡上。
  2. 显示在读取SD卡上的图像时不依赖于 互联网连接,并快速滚动我的96张图像 得到一个小视频。
  3. 问题是当我使用0.4秒延迟的计时器激活我的第二个任务时,应用程序跳过1或2个图像。实际上只有大约45张图像显示出来。

            MyTimerTask2 myTask = new MyTimerTask2();
            myTimer = new Timer();
    
            myTimer.schedule(myTask, 0 , 400); 
    

    有人可以帮我吗?

2 个答案:

答案 0 :(得分:1)

使用处理程序

Runnable  runnableforadd ;
                    Handler handlerforadd ;
                    handlerforadd = new Handler();
                    runnableforadd  = new Runnable() {
                        @Override
                        public void run() {
                          //Your Code Here
                            handlerforadd.postDelayed(runnableforadd, 400);                         } 
                    };
                    handlerforadd.postDelayed(runnableforadd, 0);

答案 1 :(得分:0)

您的计时器无效,因为您尚未定义TimerTask。 Timer需要创建为子类,需要定义,如下所示:

   private long splashDelay = 5000;
   @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.splash);
    TimerTask task = new TimerTask()
        {

        @Override
        public void run() {
        //Your code here

        }

    };

    Timer timer = new Timer();
    timer.schedule(task, splashDelay);

}

这是启动画面的Timer,但我确信您可以将其用于任何您需要的地方。

以下是一些可能有用的链接:

http://developer.android.com/reference/java/util/TimerTask.html

http://android-developers.blogspot.com/2007/11/stitch-in-time.html

如果查看第一个链接,您会看到TimerTask有一个名为run的抽象方法。必须覆盖抽象方法。您没有覆盖run方法,因此您的应用程序无法按预期工作。

希望这会有所帮助。祝你好运!