1

ブラウザ インテントに切り替えてしばらくナビゲートすると、 Eclipse 上の Android USB デバッガが停止します。

検索/リスト/詳細アプリを開発しています。
詳細は browserIntent にジャンプできます:

Intent browserIntent = new Intent(Intent.ACTION_VIEW, Uri.parse(url));
startActivity(browserIntent);

その後、私のアプリはバックグラウンドで実行されていますが、しばらくすると、Eclipse のデバッガーが切断され、Eclipse のアプリケーションが終了します。Eclipse のデバイス ビューで、プロセスが消えます。

メインのLogCatでこれを見つけました:

04-17 10:49:51.392: I/ActivityManager(31744): Process com.lma (pid 31482) has died.
04-17 10:49:51.422: I/WindowManager(31744): WIN DEATH: Window{41635c58 com.lma/com.lma.activity.LoginActivity paused=false}
04-17 10:49:51.492: I/WindowManager(31744): WIN DEATH: Window{419acac8 com.lma/com.lma.activity.search.EventSearchActivity paused=false}
04-17 10:49:51.522: I/WindowManager(31744): WIN DEATH: Window{419b9c38 com.lma/com.lma.activity.search.EventDetailActivity paused=false}
04-17 10:49:51.772: E/Sensors(31744): sensors_poll_context_t::pollEvents, line 202: receive event #### i=2, nb=0
04-17 10:49:52.302: E/dalvikvm(19811): GC_CONCURRENT freed 2213K, 36% free 12109K/18659K, paused 9ms+5ms

電話に戻ると、アプリケーションの詳細が表示されますが、データがまったく表示されません (フラグメント内のプライベート obj が null になったため)。Eclipse のデバイス ビューで、プロセスが再び表示されましたが、デバッガーに接続されていません。そして、私はこのログを見ることができます:

04-17 10:59:37.312: I/ActivityManager(31744): Start proc com.lma for activity com.lma/.activity.search.EventDetailActivity: pid=600 uid=10081 gids={3003}
...
04-17 10:59:40.702: I/ActivityManager(31744): Displayed com.lma/.activity.search.EventDetailActivity: +3s425ms

その後、もう一度リスト アクティビティに戻ると、すべての静的データが破棄され、NullPointerException が原因でアプリケーションがクラッシュします。

アプリが破棄される直前にデータを保存するにはどうすればよいですか? (私は app.getSharedPreferences() を使用しています)

4

1 に答える 1