android 让应用恢复前台显示_android – 当应用程序返回前台时出现问题
我的應用程序在與其他應用程序玩一段時間后回到前臺時崩潰,我無法找到如何解決它.
我的應用程序有一個啟動畫面活動,它從Web服務加載一些數據并將其放入在擴展應用程序的類中聲明的全局靜態變量,如this 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中所示,為什么它會打開最新的活動而不是從啟動畫面再次啟動?
解決方法:
解決問題的一個骯臟的解決方法是檢查全局變量是否填充在您的活動的onResume method中.如果未填充變量,則使用設置了CLEAR_TOP標志的Intent啟動splashscreen活動.這應該會導致您從活動堆棧中刪除所有活動,并且您的啟動屏幕將加載并能夠重新加載應用程序運行所需的所有數據.
這是一個骯臟的解決方法,可以幫助設計糟糕的應用程序.
如果您希望您的應用程序對您更好,并且用戶使用提供的解決方案inazaruk.他對應用程序的基本設置是正確的.
標簽:android,android-activity,foreground
來源: https://codeday.me/bug/20190610/1210115.html
總結
以上是生活随笔為你收集整理的android 让应用恢复前台显示_android – 当应用程序返回前台时出现问题的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: java导出excel设置行高列宽_使用
- 下一篇: jquery遍历多个li_jQuery中