Eclipse上的Android USB调试器在切换到另一个应用程序时停止(一段时间后)



Android USB调试器在Eclipse切换到浏览器意图并导航一段时间时停止。

我正在开发一个搜索/列表/细节应用程序。
详情可以跳转到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中的私有对象已变为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())

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

最新更新