This question has evolved a bit from the initial one, here's a short info:
I filled up the disk storage on the emulator and got it absolutely useless - the process android.process.acore is displaying the "... has stopped unexpectedly" dialog in a loop, so nothing can be done on the system. I can't even turn it off with the power button on the right (it's tried to power off for 10 minutes now, logcat is full of exceptions). Great it's an emulator, I wonder what would happen if it was my real device..
Maybe someone can elaborate on the reasons for this behavior - should it be like this?
Here's the initial question, please also refer to my edits:
I'm curious about handling a random situation such as running out of disk storage on an Android device.
I looked over the examples on developer.android.com and I see they don't even bother to do exception handling.
I can see that when it comes to SQLite classes, there are a couple of exceptions, such as SQLiteOutOfMemoryException, but I can't find any information when and how to handle these scenarios.
Does anyone have experience with:
Thanks in advance for your time guys.
[Edit]
I also run into this bite on Android issue tracker:
http://code.google.com/p/android/issues/detail?id=1653
It's kind of mysterious.. and seems it's a ghost since 2008.
[Edit2]
Alrite, with the advice from the comments: I just did a test using:
dd if=/dev/urandom of=file
with parameters bs and count chosen to fit the remaining space,
and filled the /data partition.
How amazed I am that Google Maps just crashed on the SQLiteFullException. Actually all the apps crash - even Phone.
Is it true that nobody handles those exceptions? Is it ok that those applications just get killed with the "..has stopped unexpectedly"?
And when a phone's storage is almost full, it will automatically remove all backed-up photos and videos. If you don't want to do that, you can manually clear out your downloads by going through your download directory, Fisco says.
Old or Unwanted Songs, Podcasts, and Videos Some podcasts and videos are hours long, and it's easy to forget just how much storage it takes to keep them on your phone. It's important to check your downloads frequently to make sure you're not holding onto large files.
The way I handle this is with error handling around all file operations so that the app won't just crash, and I do a file stat (https://stackoverflow.com/a/5083482/1317564) on the directory being used by the user to ensure there's enough free space. If not, I show them a nice big error message. ;) Generally the phone itself will do plenty of complaining as well, so they should notice the problem sooner or later.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With