在72行如果加上adapter.notifyDataSetChanged(),会出现下面的错误08-11 08:44:10.782: W/dalvikvm(4144): threadid=11: thread exiting with uncaught exception (group=0x41684d58)
08-11 08:44:10.812: E/AndroidRuntime(4144): FATAL EXCEPTION: AsyncTask #1
08-11 08:44:10.812: E/AndroidRuntime(4144): Process: com.energy_blelamp, PID: 4144
08-11 08:44:10.812: E/AndroidRuntime(4144): java.lang.RuntimeException: An error occured while executing doInBackground()
08-11 08:44:10.812: E/AndroidRuntime(4144):  at android.os.AsyncTask$3.done(AsyncTask.java:300)
08-11 08:44:10.812: E/AndroidRuntime(4144):  at java.util.concurrent.FutureTask.finishCompletion(FutureTask.java:355)
08-11 08:44:10.812: E/AndroidRuntime(4144):  at java.util.concurrent.FutureTask.setException(FutureTask.java:222)
08-11 08:44:10.812: E/AndroidRuntime(4144):  at java.util.concurrent.FutureTask.run(FutureTask.java:242)
08-11 08:44:10.812: E/AndroidRuntime(4144):  at android.os.AsyncTask$SerialExecutor$1.run(AsyncTask.java:231)
08-11 08:44:10.812: E/AndroidRuntime(4144):  at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1112)
08-11 08:44:10.812: E/AndroidRuntime(4144):  at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:587)
08-11 08:44:10.812: E/AndroidRuntime(4144):  at java.lang.Thread.run(Thread.java:841)
08-11 08:44:10.812: E/AndroidRuntime(4144): Caused by: android.view.ViewRootImpl$CalledFromWrongThreadException: Only the original thread that created a view hierarchy can touch its views.
08-11 08:44:10.812: E/AndroidRuntime(4144):  at android.view.ViewRootImpl.checkThread(ViewRootImpl.java:6075)
08-11 08:44:10.812: E/AndroidRuntime(4144):  at android.view.ViewRootImpl.requestLayout(ViewRootImpl.java:862)
08-11 08:44:10.812: E/AndroidRuntime(4144):  at android.view.View.requestLayout(View.java:16466)
08-11 08:44:10.812: E/AndroidRuntime(4144):  at android.view.View.requestLayout(View.java:16466)
08-11 08:44:10.812: E/AndroidRuntime(4144):  at android.view.View.requestLayout(View.java:16466)
08-11 08:44:10.812: E/AndroidRuntime(4144):  at android.view.View.requestLayout(View.java:16466)
08-11 08:44:10.812: E/AndroidRuntime(4144):  at android.view.View.requestLayout(View.java:16466)
08-11 08:44:10.812: E/AndroidRuntime(4144):  at android.view.View.requestLayout(View.java:16466)
08-11 08:44:10.812: E/AndroidRuntime(4144):  at android.view.View.requestLayout(View.java:16466)
08-11 08:44:10.812: E/AndroidRuntime(4144):  at android.view.View.requestLayout(View.java:16466)
08-11 08:44:10.812: E/AndroidRuntime(4144):  at android.widget.TableLayout.requestLayout(TableLayout.java:230)
08-11 08:44:10.812: E/AndroidRuntime(4144):  at android.view.View.requestLayout(View.java:16466)
08-11 08:44:10.812: E/AndroidRuntime(4144):  at android.view.View.requestLayout(View.java:16466)
08-11 08:44:10.812: E/AndroidRuntime(4144):  at android.widget.AbsListView.requestLayout(AbsListView.java:1949)
08-11 08:44:10.812: E/AndroidRuntime(4144):  at android.widget.AdapterView$AdapterDataSetObserver.onChanged(AdapterView.java:814)
08-11 08:44:10.812: E/AndroidRuntime(4144):  at android.widget.AbsListView$AdapterDataSetObserver.onChanged(AbsListView.java:6454)
08-11 08:44:10.812: E/AndroidRuntime(4144):  at android.database.DataSetObservable.notifyChanged(DataSetObservable.java:37)
08-11 08:44:10.812: E/AndroidRuntime(4144):  at android.widget.BaseAdapter.notifyDataSetChanged(BaseAdapter.java:50)
08-11 08:44:10.812: E/AndroidRuntime(4144):  at com.energy_blelamp.Control$2.onRefresh(Control.java:102)
08-11 08:44:10.812: E/AndroidRuntime(4144):  at com.energy.util.RefreshableView$RefreshingTask.doInBackground(RefreshableView.java:452)
08-11 08:44:10.812: E/AndroidRuntime(4144):  at com.energy.util.RefreshableView$RefreshingTask.doInBackground(RefreshableView.java:1)
08-11 08:44:10.812: E/AndroidRuntime(4144):  at android.os.AsyncTask$2.call(AsyncTask.java:288)
08-11 08:44:10.812: E/AndroidRuntime(4144):  at java.util.concurrent.FutureTask.run(FutureTask.java:237)
08-11 08:44:10.812: E/AndroidRuntime(4144):  ... 4 more如果不加,是下面的错误,或者数组出界的错误08-11 08:47:04.231: W/dalvikvm(6408): threadid=1: thread exiting with uncaught exception (group=0x41684d58)
08-11 08:47:04.231: E/AndroidRuntime(6408): FATAL EXCEPTION: main
08-11 08:47:04.231: E/AndroidRuntime(6408): Process: com.energy_blelamp, PID: 6408
08-11 08:47:04.231: E/AndroidRuntime(6408): java.lang.IllegalStateException: The content of the adapter has changed but ListView did not receive a notification. Make sure the content of your adapter is not modified from a background thread, but only from the UI thread. Make sure your adapter calls notifyDataSetChanged() when its content changes. [in ListView(2131296273, class android.widget.ListView) with Adapter(class com.energy.util.LeDeviceListAdapter)]
08-11 08:47:04.231: E/AndroidRuntime(6408):  at android.widget.ListView.layoutChildren(ListView.java:1555)
08-11 08:47:04.231: E/AndroidRuntime(6408):  at android.widget.AbsListView$CheckForTap.run(AbsListView.java:3158)
08-11 08:47:04.231: E/AndroidRuntime(6408):  at android.os.Handler.handleCallback(Handler.java:733)
08-11 08:47:04.231: E/AndroidRuntime(6408):  at android.os.Handler.dispatchMessage(Handler.java:95)
08-11 08:47:04.231: E/AndroidRuntime(6408):  at android.os.Looper.loop(Looper.java:136)
08-11 08:47:04.231: E/AndroidRuntime(6408):  at android.app.ActivityThread.main(ActivityThread.java:5034)
08-11 08:47:04.231: E/AndroidRuntime(6408):  at java.lang.reflect.Method.invokeNative(Native Method)
08-11 08:47:04.231: E/AndroidRuntime(6408):  at java.lang.reflect.Method.invoke(Method.java:515)
08-11 08:47:04.231: E/AndroidRuntime(6408):  at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:805)
08-11 08:47:04.231: E/AndroidRuntime(6408):  at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:621)
08-11 08:47:04.231: E/AndroidRuntime(6408):  at dalvik.system.NativeStart.main(Native Method)
08-11 08:47:04.271: D/BluetoothAdapter(6408): onClientRegistered() - status=0 clientIf=5