使用handler()的Android高CPU使用率

时间:2014-09-20 05:46:05

标签: android android-permissions android-handler

我正在使用处理程序来更改我的图像视图:

    new Thread(new Runnable() {  
        @Override  
        public void run() {  
            while (true) {  
                if (isContinue) {                           
                    viewHandler.sendEmptyMessage(atomicInteger.get());  
                    atomicOption();  
                }  
            }  
        }  
    }).start();

private final Handler viewHandler = new Handler() {  

    @Override  
    public void handleMessage(Message msg) {  
        adViewPager.setCurrentItem(msg.what);  
        super.handleMessage(msg);  
    }  

}; 

我的应用程序使用超过50%或30%的CPU !!当我删除我的处理程序时,这个应用程序使用了0%的CPU。但我不知道另一种更新GUI的方法..

1 个答案:

答案 0 :(得分:2)

您可以使用HandlerRunnable来启动帖子并更新视图。

Handler handler = new Handler();
Runnable runnable = new Runnable() {
    public void run()
    {
        ...... // do your operation
        handler.postDelayed(runnable, time);//sleep some time after this operation
    }
};

handler.post(runnable);//start the thread

因为Android中最高的FPS是60,所以你不需要一直更新GUI。