0

ユーザーの写真を撮りたいサービスがあります。タイマータスクがあります

     myTimer = new Timer();
     myTimer.schedule(new TimerTask() {
        @Override
        public void run() {
            TimerMethod();
        }

    }, 0, 3000);

そしてタイマーメソッド

プライベート ボイド TimerMethod() {

    if (na != null)
        zzz.runOnUiThread(Timer_Tick);
}

private Runnable Timer_Tick = new Runnable() {
    public void run() {

        takePhoto(getApplicationContext(), 1);
    }
};

私の問題は、runOnUiThread を実行すると、アプリの実行が遅くなることです。

ユーザーエクスペリエンスに影響を与えない他のスレッドで実行するにはどうすればよいですか?

どうもありがとう。

4

1 に答える 1

0

TimerTask はメイン スレッドで実行されています。これにより、アプリの実行が遅くなります。メソッド TimerMethod を実行するには、次のように新しいスレッドが必要です。

  myTimer.schedule(new TimerTask() {
    @Override
    public void run() {   
            new Thread(new Runnable() {

                @Override
                public void run() {
                    TimerMethod();
                }
            }).start();
       }

   }, 0, 3000);
于 2015-08-06T09:38:27.727 に答える