В чем может быть проблема? Должно ли оно быть вызвано из потока пользовательского интерфейса? Или реальная нить вместо сопрограммы? Кстати, сообщение об исключении пустое.
Сопрограмма для получения данных и добавления их в набор данных:
launch(threadP) {
for (n in channel) {
if (dataSet.entryCount > 1000)
dataSet.removeFirst()
val cnt = dataCnt.incrementAndGet()
try {
dataSet.addEntry(Entry(cnt.toFloat(), n.toFloat()))
//dataSet.notifyDataSetChanged()
} catch (e: Throwable) {
Log.wtf("LISTENING", e.javaClass.simpleName)
}
}
}
Сопрограмма для обновления LineChart:
import kotlinx.coroutines.experimental.android.UI as AUI
...
launch(AUI) {
while (true) {
//dataSet.notifyDataSetChanged()
try {
chart.notifyDataSetChanged()
chart.invalidate()
} catch (e: Throwable) {
Log.wtf("REFRESH", e.javaClass.simpleName)
}
delay(1000)
}
}