我正在使用Mpbarchart库进行数据分析。工作线程中已经存在Barchart初始化。但是当我触摸图形时,设备挂起并显示ANR对话框。在Logcat中显示消息“输入调度已超时”。
使用句柄和线程进行后台处理
Handler h = new Handler() {
@Override
public void handleMessage(Message msg) {
if (msg.what == 1) {
initGraph();
} else {
}
}
};
Thread t = new Thread() {
@Override
public void run() {
// Call to get packet number
if (mSection != null) {
if (performanceHelper.getQuestionPerformanceGraphData(mTestId, mSection).size() > 0) {
//default
graphDataList.addAll(performanceHelper.getQuestionPerformanceGraphData(mTestId, mSection));
} else {
mNoDataInChart = true;
}
} else {
if (performanceHelper.getQuestionPerformanceGraphData(mTestId).size() > 0) {
//default
graphDataList.addAll(performanceHelper.getQuestionPerformanceGraphData(mTestId));
} else {
mNoDataInChart = true;
}
}
h.sendEmptyMessage(1);
}
};
原因:输入调度超时(正在等待发送非键事件,因为触摸的窗口尚未完成处理500.0ms之前传送给它的某些输入事件。等待队列长度:31。等待队列头部年龄:8523.9毫秒。)