onClick方法延迟主线程

时间:2015-09-03 11:27:30

标签: android multithreading onclick frames

我正在Android中制作一个计算器应用程序,它在onClick方法中进行大量计算,导致它跳过帧:

 I/Choreographer﹕ Skipped 206 frames!  The application may be doing too much work on its main thread.

方法如下:

public void onClick(View v) {
    switch (v.getId()) {
        case R.id.btnZero:
        //do some stuff
        break; ...
}

我的问题是:我能否以任何方式让这种运行更快 - 可能是某些线程或其他任何东西?

2 个答案:

答案 0 :(得分:3)

您可以使用像AsyncTask这样的后台线程< ...,...,...>进行计算,然后将结果返回给您的UI。这种方式计算不是在MainUI-Thread上完成的,而是在后台完成的。这样你的用户界面就不会冻结,而且它是Android中用来做更长时间活动的常用方式。 请参阅http://developer.android.com/reference/android/os/AsyncTask.html以获取参考

答案 1 :(得分:1)

当您在主线程中放入太多代码并且需要时间来处理时会出现这种情况,因此会跳过帧。

在此处找到解决方案:

The application may be doing too much work on its main thread