Android服务在后台OnUiThread拍照

时间:2015-08-06 09:17:28

标签: android service android-runonuithread

我有服务,我想拍摄用户的照片。 我有一个计时器任务

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

    }, 0, 3000);

和计时器方法

private void TimerMethod(){

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

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

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

我的问题是,如果我runOnUiThread,应用程序运行速度较慢。

如何在不会​​影响用户体验的其他线程中运行?

非常感谢。

1 个答案:

答案 0 :(得分:0)

你的TimerTask在主线程中运行,这将使app运行速度变慢。你需要一个新的线程来运行方法TimerMethod,就像这样:

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

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

   }, 0, 3000);