0

我有服务,我想为用户拍照。我有一个定时器任务

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

    }, 0, 3000);

和定时器方法

私人无效计时器方法(){

    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 回答