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