notifyDataSetChanged()上的WinDeath
您好,我有以下问题:
data.clear();
data.addAll(datasource.getFilesInFolder()); //gets the data from Sqlite database
adapter.notifyDataSetChanged();
生成这个logCat输出:
12-19 14:34:30.864: W/Binder(986): Caught a RuntimeException from the binder stub implementation.
12-19 14:34:30.864: W/Binder(986): java.lang.NullPointerException
12-19 14:34:30.864: W/Binder(986): at android.inputmethodservice.IInputMethodWrapper.setSessionEnabled(IInputMethodWrapper.java:280)
12-19 14:34:30.864: W/Binder(986): at com.android.internal.view.IInputMethod$Stub.onTransact(IInputMethod.java:129)
12-19 14:34:30.864: W/Binder(986): at android.os.Binder.execTransact(Binder.java:404)
12-19 14:34:30.864: W/Binder(986): at dalvik.system.NativeStart.run(Native Method)
12-19 14:34:30.864: W/InputMethodManagerService(757): Got RemoteException sending setActive(false) notification to pid 30040 uid 10174
这个异常会导致WIN DEATH ...
好吧,我意识到也许这是另一回合,WIN DEATH导致这个日志输出,因为在日志WINDEATH之前,然后我不知道为什么windeath发生。
我的适配器扩展了BaseAdapter,没有什么特别的东西。 非常奇怪的是以下几点:
所提到的这段代码位于由另一个类触发的自定义侦听器中。 当我将有问题的部分放在听众之外时,它运作良好。
我Caught a RuntimeException from the binder stub implementation
意味着什么? 它可能是数据库的问题吗? 或者可能是我的自定义侦听器? 任何人有一个想法有什么问题?
我已经看到在执行并发操作时遇到这个问题的各种问题。 看看这个线程(fling + service)和这个(从2个线程画在画布上)。
你正在谈论一个不同班级的自定义听众,是否可以一次做几件事?
您应该直接将数据添加到适配器中。
而不是做
data.clear();
data.addAll(datasource.getFilesInFolder()); //gets the data from Sqlite database
adapter.notifyDataSetChanged();
你应该做
if(adapter!=null)
{
adapter.clear();
adapter.addAll(datasource.getFilesInFolder()); //gets the data from Sqlite database
adapter.notifyDataSetChanged();
}
我认为适配器是空的,这是你的情况造成的问题
链接地址: http://www.djcxy.com/p/18105.html