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

当我回到电话上时,我的应用程序详细信息出现了,但根本没有显示任何数据(导致 Fragment 中的私有 obj 变为空)。在 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

0

最后,我通过 app.getSharedPreferences() 在每个活动中实现了 onPause() 保存数据,因为 Application 的 onDestroy() 事件仅适用于模拟器环境。

于 2013-04-18T09:38:13.070 回答