Fix bug caused by notifications occurring on background thread

09-18 09:34:54.840 E/AndroidRuntime(11012): FATAL EXCEPTION: AsyncTask
#2
09-18 09:34:54.840 E/AndroidRuntime(11012): java.lang.RuntimeException:
An error occured while executing doInBackground()
09-18 09:34:54.840 E/AndroidRuntime(11012): at
android.os.AsyncTask$3.done(AsyncTask.java:278)
09-18 09:34:54.840 E/AndroidRuntime(11012): at
java.util.concurrent.FutureTask$Sync.innerSetException(FutureTask.java:2
73)
09-18 09:34:54.840 E/AndroidRuntime(11012): at
java.util.concurrent.FutureTask.setException(FutureTask.java:124)
09-18 09:34:54.840 E/AndroidRuntime(11012): at
java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:307)
09-18 09:34:54.840 E/AndroidRuntime(11012): at
java.util.concurrent.FutureTask.run(FutureTask.java:137)
09-18 09:34:54.840 E/AndroidRuntime(11012): at
java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.jav
a:1076)
09-18 09:34:54.840 E/AndroidRuntime(11012): at
java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.ja
va:569)
09-18 09:34:54.840 E/AndroidRuntime(11012): at
java.lang.Thread.run(Thread.java:856)
09-18 09:34:54.840 E/AndroidRuntime(11012): Caused by:
android.view.ViewRootImpl$CalledFromWrongThreadException: Only the
original thread that created a view hierarchy can touch its views.
09-18 09:34:54.840 E/AndroidRuntime(11012): at
android.view.ViewRootImpl.checkThread(ViewRootImpl.java:4039)
09-18 09:34:54.840 E/AndroidRuntime(11012): at
android.view.ViewRootImpl.requestLayout(ViewRootImpl.java:709)
09-18 09:34:54.840 E/AndroidRuntime(11012): at
android.view.View.requestLayout(View.java:12675)
09-18 09:34:54.840 E/AndroidRuntime(11012): at
android.view.View.requestLayout(View.java:12675)
09-18 09:34:54.840 E/AndroidRuntime(11012): at
android.view.View.requestLayout(View.java:12675)
09-18 09:34:54.840 E/AndroidRuntime(11012): at
android.view.View.requestLayout(View.java:12675)
09-18 09:34:54.840 E/AndroidRuntime(11012): at
android.view.View.requestLayout(View.java:12675)
09-18 09:34:54.840 E/AndroidRuntime(11012): at
android.widget.AbsListView.requestLayout(AbsListView.java:1715)
09-18 09:34:54.840 E/AndroidRuntime(11012): at
android.widget.AdapterView$AdapterDataSetObserver.onChanged(AdapterView.
java:801)
09-18 09:34:54.840 E/AndroidRuntime(11012): at
android.widget.AbsListView$AdapterDataSetObserver.onChanged(AbsListView.
java:5627)
09-18 09:34:54.840 E/AndroidRuntime(11012): at
android.database.DataSetObservable.notifyChanged(DataSetObservable.java:
35)
09-18 09:34:54.840 E/AndroidRuntime(11012): at
android.widget.BaseAdapter.notifyDataSetChanged(BaseAdapter.java:50)
09-18 09:34:54.840 E/AndroidRuntime(11012): at
labrom.litlbro.widget.SuggestionAdapter.update(SuggestionAdapter.java:91
)
09-18 09:34:54.840 E/AndroidRuntime(11012): at
java.util.Observable.notifyObservers(Observable.java:138)
09-18 09:34:54.840 E/AndroidRuntime(11012): at
java.util.Observable.notifyObservers(Observable.java:113)
09-18 09:34:54.840 E/AndroidRuntime(11012): at
labrom.litlbro.util.ObservableListProxy.notifyObservers(ObservableListPr
oxy.java:37)
09-18 09:34:54.840 E/AndroidRuntime(11012): at
labrom.litlbro.util.ObservableListProxy.forceNotify(ObservableListProxy.
java:31)
09-18 09:34:54.840 E/AndroidRuntime(11012): at
labrom.litlbro.suggestion.SuggestionList.merge(SuggestionList.java:77)
09-18 09:34:54.840 E/AndroidRuntime(11012): at
labrom.litlbro.suggestion.GetSuggestionsTask.doInBackground(GetSuggestio
nsTask.java:55)
09-18 09:34:54.840 E/AndroidRuntime(11012): at
labrom.litlbro.suggestion.GetSuggestionsTask.doInBackground(GetSuggestio
nsTask.java:1)
09-18 09:34:54.840 E/AndroidRuntime(11012): at
android.os.AsyncTask$2.call(AsyncTask.java:264)
09-18 09:34:54.840 E/AndroidRuntime(11012): at
java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:305)
09-18 09:34:54.840 E/AndroidRuntime(11012): ... 4 more