in my irc app, I'm trying to improve the responsiveness when it has to deal with a lot of data at a single time.
At the moment, once the data is append()-ed to the textview, I post a delayed runnable (100ms delay) back to the UI thread to make it scroll right down to the bottom. Unfortunately, without the runnable being posted, the ScrollView doesn't correctly calculate the amount it should scroll.
This works fine for normal situations and the program is fully responsive. But when, there is a lot of channel activity, the queue of Runnables start to strain the UI thread and it has trouble appending the data as it arrives and occasionally causes an ANR.
My question is, how would I get around this? Without the Runnable, it doesn't scroll correctly but with it, it causes problems. A possible solution could be to detect when there is an influx of data and post the Runnable less often, but I'm not sure how I would detect this.