I'll start out with the scenario, it's a tricky one: I have a ListView with a single button on each row. These buttons have the ability to be held down by the user. There is a chance that from a background thread that something will happen to call notifyDataSetChanged() on the ListView. This will cause ACTION_CANCEL to be called on any of the button presses, interrupting the users interaction with holding down the button.
I've tried a couple things, but I think I've been missing the main cause of my problem which is that on a notifyDataSetChanged() ACTION_CANCEL is called on any of it's children.
I'm currently using a BaseAdapter. I need to update a TextView that is next to the button whenever the background thread calls notifyDataSetChanged(), but I can't let it interrupt the held button. I'm currently trying to manually just update the text field, but it's not redrawing even when calling invalidate.
I'll post my solution if I find one.