1

我激活了一个有 2 个任务的计时器。

  1. 每秒下载 1 张图像,并为 SD 卡上的每张图像显示此内容。
  2. 显示在读取 sd 卡上的图像时不依赖于 Internet 连接,并且可以快速滚动我的 96 张图像以获取小视频。

问题是当我以 0.4 秒延迟的计时器激活我的第二个任务时,应用程序会跳过 1 或 2 个图像。实际上只有大约 45 张图像显示。

        MyTimerTask2 myTask = new MyTimerTask2();
        myTimer = new Timer();

        myTimer.schedule(myTask, 0 , 400); 

有人可以帮助我吗?

4

2 回答 2

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);
于 2012-07-12T13:56:55.870 回答
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 方法,因此您的应用程序无法按预期工作。

希望这可以帮助。祝你好运!

于 2012-07-12T13:47:36.763 回答