In my main activity i am using a view pager which shows two fragments. One for recent messages and another online contacts. In my contact fragment i am binding activity to a service named ContactService. ContactService has an interface FragmentConnected which has a public method like this:
interface FragmentConnected {
public void onFragmentConnected(ArrayList<Contact> clist);
}
In my ContactFragment i am implementing this interface like this
public void onFragmentConnected(ArrayList clist) {
onlineContactAdapter.changeList(clist);
}
Here onlineContactAdapter is my adpter for ContactFragment has a method changeList for updating list of online users.
In my service ContactService in onHandleIntent i am getting list of online users from server and i am calling method contactFragment.onFragmentConnected as i have instance of ContactFragment in contactFragment when it binds to service. EveryThing is running fine until i call this method onFragmentConnected from service . When i am calling this method from service it is giving me this error:- android.view.ViewRootImpl$CalledFromWrongThreadException: Only the original thread that created a view hierarchy can touch its views.