嗨,我每次执行查询时都会在日志中收到此消息。但是查询仅在后台线程中执行,并且表没有更多的500行,而且我始终会应用限制100。
请不要简单地给出一些链接,并说这个问题已经回答了。
因此,我在SO中阅读了很多答案。但是仍然没有解决我的问题。有人可以给我适当的理由或解决我的问题的方法吗?
编舞:跳过98帧!该应用程序可能在其主线程上做过多的工作。
以下是我的可运行类,我像new Thread(new MessageLoaderThread(limit))。start();一样调用它。
private class MessageLoaderThread implements Runnable {
int limit;
ArrayList<MESSAGE_HEADER> result;
public MessageLoaderThread(int limit) {
this.limit = limit;
}
@Override
public void run() {
showProgressRing(true);
result = Helper.getRows("Select * from TABLE_NAME LIMIT "+limit);
if (result != null) {
int count = result.size();
if (count > 0) {
firstVisibleMessageSeqId = result.get(0).getsequenceId();
lastVisibleMessageSeqId = result.get(count - 1).getsequenceId();
}
}
if (result != null && result.size() > 0) {
updateAdapter(result);
}
showProgressRing(false);
}
}
谢谢
最佳答案
我知道您已经阅读了很多问题。您是否尝试过使用AsyncTask?它是Android中多线程的默认设置。
尝试不要在线程内更新适配器。当您更改某些 View 时,Android会执行一些动画。等待线程完成,然后更新 View 。
关于android - 该应用程序显示即使在后台线程中执行了操作,也在主线程中做了过多的工作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36718398/