Only the original thread that created a view hierarchy can touch its views.
Your fragment is creating the views on one thread and you are calling notifyDataSetChanged within the (different) message receiver thread.
As the call stack in the log shows, notifyDataSetChanged
results in call to requestLayout
which is trying to update the associated view.
You need to ensure the notifyDataSetChanged
call is run on the same thread as the views were created in. You can do this by calling runOnUiThread
for the parent Activity.