1

2 つのタスクでタイマーをアクティブにします。

  1. 1 秒あたり 1 画像をダウンロードし、SD カード上の各画像に対してこれを表示します。
  2. インターネット接続に依存せず、96枚の画像を高速スクロールして小さなビデオを取得するために、SDカードの画像を読み取る際にそれを表示します。

問題は、0.4 秒のタイマーで 2 番目のタスクをアクティブにすると、アプリケーションが 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。タイマーはサブクラスとして作成する必要があり、次のように定義する必要があります。

   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 に答える