3

I'd like to have some emergency cleanup code execute just before my app crashes. I tried using onDestroy(),, onFinal() and finalize() to no avail. Is this possible in an Android Activity?

Frank
  • 1,426
  • 1
  • 14
  • 14
  • 1
    Force close = Activity Badly written. – Jorgesys Jul 22 '10 at 23:05
  • 5
    @Jorgesys, either every single app I've ever used is "badly written" or there are unforeseen circumstances that cause all apps to crash (preferably not very often). – Yevgeny Simkin Nov 30 '11 at 21:17
  • 1
    Badly Written, read this... http://developer.android.com/intl/fr/guide/practices/design/responsiveness.html I have recently released a new version of my app and all of the force close messages displayed after the latest version now are gone, the implementation of Asynchtask will do the job even with a slow connection http://developer.android.com/intl/fr/reference/android/os/AsyncTask.html – Jorgesys Nov 30 '11 at 22:31

2 Answers2

2

Well, I would recommend not having your app crash in the first place. If there's something that COULD crash, just put a try/catch around it and handle it properly.

Or, as some sort of global try/catch, you can use Thread.setUncaughtExceptionHandler(). Finally, you could even consider Runtime.addShutdownHook, but that's most likely a bad idea.

EboMike
  • 76,846
  • 14
  • 164
  • 167
  • I'll give this a try. I'm using a hardware accelerator so when Android loads my new program it doesn't call stop or anything and that causes my other process to be in the wrong state. – Frank Aug 02 '10 at 17:40
0

just implement Error handling, and call your cleanup code.

try {
...
...
...
} catch (Exception e) { 
cleanupcode();//cleanup code execute just before my app crashes
e.printStackTrace();
}

you will not see the Force Close Dialog but if you want to force to close just call

   super.finish();
Jorgesys
  • 124,308
  • 23
  • 334
  • 268