我的应用程序在与其他应用程序玩了一段时间后回到前台时崩溃,我不知道如何修复它。
我的应用程序有一个启动屏幕活动,它从 Web 服务加载一些数据并将其放入在扩展 Application 的类中声明的全局静态变量中,如此 SO question中所述。加载完所有数据后,此活动将启动一个 Home 活动,其中包含一些用于在应用程序中导航的菜单。全局变量用于大多数活动。
在某些时候,在玩其他应用程序时,我的应用程序似乎被杀死了,因为我可以在 logcat 中看到:
I/ActivityManager( 2465): Process com.mysite.myapp (pid 23538) has died.
I/WindowManager( 2465): WIN DEATH: Window{4852a678 com.mysite.myapp/com.mysite.myapp.Home paused=false}
I/WindowManager( 2465): WIN DEATH: Window{485b63a8 com.mysite.myapp/com.mysite.myapp.Home paused=false}
I/WindowManager( 2465): WIN DEATH: Window{4826fbf8 com.mysite.myapp/com.mysite.myapp.ItemList paused=false}
I/WindowManager( 2465): WIN DEATH: Window{48286f90 com.mysite.myapp/com.mysite.myapp.ItemDetail paused=false}
W/GpsLocationProvider( 2465): Unneeded remove listener for uid 1000
D/GpsLocationProvider( 2465): stopNavigating
D/gps_BRCM( 2465): [status check] on_stop() : GPS_STATUS_SESSION_END
D/gps_BRCM( 2465): gps_engine_status_update 2
D/GpsLocationProvider( 2465): send an intent to notify that the GPS has been enabled or disabled
D/gps_BRCM( 2465): gps_stop: called
V/GpsLocationProvider( 2465): hybridGpsSensorDeregister : No registered sensorManager
D/GpsLocationProvider( 2465): hybridGpsSensorDeregister
并且调试器已分离。
现在,当我再次打开我的应用程序时,如果最新的活动不使用全局变量,则会启动它(在这种情况下,一旦我导航到使用全局变量的活动,它就会崩溃),或者如果它使用则立即崩溃。
如果我的应用程序被杀死,这似乎是因为即使我的位置服务也停止了,如 logcat 中所见,为什么它会打开最新的活动而不是从启动屏幕再次启动?