我有一个从数据库(greendao)中填充列表视图的应用程序。我有屏幕定位支持,所以它可以在两个方向工作。我遇到的问题是,当应用程序是一个较长时间的背景(当这种情况发生时找不到某个特定的点),然后我回到它,列表视图是空的,如果我试图做任何事情,它就会崩溃。
我有一个不可能的时间调试这一点,因为它只发生时,应用程序是在后台一段时间。
我通过从数据库中填充一个数组列表,然后将其发送到适配器来填充listview。
有人知道为什么会这样吗?
编辑:解决广播回收器问题
但是,列表视图为空的原因仍未找到。
我得到了另一个logcat (问题是从数据库获取数据:/ ):
11-11 13:45:31.136: E/AndroidRuntime(4468): FATAL EXCEPTION: main
11-11 13:45:31.136: E/AndroidRuntime(4468): java.lang.NullPointerException
11-11 13:45:31.136: E/AndroidRuntime(4468): at si.comtron.tronpos.content.DatabaseHelpers.viewArticleWithPrice(DatabaseHelpers.java:70)
11-11 13:45:31.136: E/AndroidRuntime(4468): at si.comtron.tronpos.ArticlesFragment.onCreateView(ArticlesFragment.java:269)
11-11 13:45:31.136: E/AndroidRuntime(4468): at android.app.FragmentManagerImpl.moveToState(FragmentManager.java:831)
11-11 13:45:31.136: E/AndroidRuntime(4468): at android.app.FragmentManagerImpl.moveToState(FragmentManager.java:1037)
11-11 13:45:31.136: E/AndroidRuntime(4468): at android.app.BackStackRecord.run(BackStackRecord.java:635)
11-11 13:45:31.136: E/AndroidRuntime(4468): at android.app.FragmentManagerImpl.execPendingActions(FragmentManager.java:1399)
11-11 13:45:31.136: E/AndroidRuntime(4468): at android.app.FragmentManagerImpl$1.run(FragmentManager.java:428)
11-11 13:45:31.136: E/AndroidRuntime(4468): at android.os.Handler.handleCallback(Handler.java:615)
11-11 13:45:31.136: E/AndroidRuntime(4468): at android.os.Handler.dispatchMessage(Handler.java:92)
11-11 13:45:31.136: E/AndroidRuntime(4468): at android.os.Looper.loop(Looper.java:155)
11-11 13:45:31.136: E/AndroidRuntime(4468): at android.app.ActivityThread.main(ActivityThread.java:5511)
11-11 13:45:31.136: E/AndroidRuntime(4468): at java.lang.reflect.Method.invokeNative(Native Method)
11-11 13:45:31.136: E/AndroidRuntime(4468): at java.lang.reflect.Method.invoke(Method.java:511)
11-11 13:45:31.136: E/AndroidRuntime(4468): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:1029)
11-11 13:45:31.136: E/AndroidRuntime(4468): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:796)
11-11 13:45:31.136: E/AndroidRuntime(4468): at dalvik.system.NativeStart.main(Native Method)
发布于 2014-11-11 12:32:33
IntentReceiver si.comtron.tronpos.USB.USBService$1@4197ac28最初是在这里注册的。你错过了打给unregisterReceiver()的电话吗?
看来你在使用BroadcastReceiver
在onPause()
中注销您的接收器
@Override
protected void onPause() {
super.onPause();
unregisterReceiver(yourReceiver);
}
发布于 2014-11-11 11:59:51
转到手机上的Developer Options
,并选中Don't save Activities
复选框。这样,您的任何一个Activities
在后台就会被杀死,而且您很可能能够在不等待的情况下重新创建该问题。
发布于 2014-11-11 12:13:59
有人知道为什么会这样吗?
由于内存不足,应用程序的进程被终止,但它仍然存在于最近的任务列表中。当您尝试返回应用程序时,Android为您准备了一个新的进程,并启动了您所使用的最后一个活动。你认为在这个过程中其他的东西应该已经存在了,当它不在的时候。
https://stackoverflow.com/questions/26864358
复制相似问题