How to debug onDestroy(), Android system kills app while paused in debugger

前端 未结 2 1151
闹比i
闹比i 2021-01-06 01:04

I have a bug I\'m trying to analyze that occurs when the Activity\'s onDestroy() method is called after hitting the back button. I\'ve put breakpoints in the offending code

相关标签:
2条回答
  • 2021-01-06 01:09

    A workaround that I found is to put a startActivity() call into onDestroy() (before super.onDestroy()) that starts a dummy instance of the Activity, just to keep the app alive. The Android system won't garbage collect the app thread because there is still an Activity running within it (the new dummy Activity). This in turn allows you to debug things because the debugger's connection to thread won't be lost.

    If the phone pops up a dialog saying the app is not responding (Force Close or Wait), don't click Wait, just leave it alone. It seemed that clicking Wait caused the app thread to be killed and a new thread was created for the dummy Activity.

    0 讨论(0)
  • 2021-01-06 01:13

    You can try a breakpoint on super.onDestroy(), but I suspect you'll have the same luck. :(

    Android won't let you linger in onDestroy, it will timeout, so try to accomplish your shutdown more quickly. onDestroy() is intended only for freeing resources and isn't always called before termination; data should be persisted in onPause() or onStop(). https://developer.android.com/training/basics/activity-lifecycle/stopping.html

    Addendum: Other options include using a background service for some of the work or to manually handle the back button to give yourself more time, but it could negatively impact user experience.

    http://www.stanford.edu/class/cs193a/03/

    sent from my phone, please cut my thumbs some slack.

    0 讨论(0)
提交回复
热议问题