1

データベース(greendao)からリストビューを埋めるアプリケーションがあります。画面の向きがサポートされているので、どちらの向きでも機能します。私が抱えている問題は、アプリが長時間バックグラウンドである場合 (これが発生した特定のポイントを見つけることができない)、アプリに戻ると、リストビューが空になり、何かをしようとするとクラッシュすることです。

アプリケーションがしばらくの間バックグラウンドにある場合にのみ発生するため、これをデバッグすることは不可能です。

データベースから arraylist を入力し、それをアダプターに送信して、リストビューを入力します。

なぜこれが起こっているのか誰にも分かりますか?

編集:ブロードキャストレシーバーの問題が解決しました

しかし、リストビューが空である理由はまだ見つかりません。

別のlogcat thoを取得しました(問題はデータベースからデータを取得することです:/):

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)
4

4 に答える 4

1

最初にここに登録された IntentReceiver si.comtron.tronpos.USB.USBService$1@4197ac28。unregisterReceiver() への呼び出しがありませんか?

使っているようですBroadcastReceiver

でレシーバーを登録解除しますonPause()

@Override
protected void onPause() {
    super.onPause();
    unregisterReceiver(yourReceiver);
}
于 2014-11-11T12:32:33.220 に答える
1

電話で に移動しDeveloper Options、チェックボックスをオンにしますDon't save Activities。このようActivitiesにして、バックグラウンドになるとすぐにあなたのいずれかが殺され、ほとんどの場合、待つことなく問題を再現することができます.

于 2014-11-11T11:59:51.887 に答える
0

なぜこれが起こっているのか誰にも分かりますか?

メモリ不足のため、アプリのプロセスは終了しましたが、最近のタスク リストにはまだ存在していました。アプリに戻ろうとすると、Android は新しいプロセスをフォークし、最後に行っていたアクティビティを開始します...そして、プロセス内の他の何かが存在しない場合でも、すでに存在していると想定しています。

于 2014-11-11T12:13:59.427 に答える