Thank you for taking the time to reply.
Regarding the CRUD operations, well I was basically talking about a local SQLite db. I do update data in the cloud, but I guess there's plenty of options when it comes to doing that : IntentServices, Jobscheduler, SyncAdapter, etc.
It's in those apparently trivial CRUD operations that we are left on our own
Almost all the books I have read mentioned that we should avoid to perform such operations off the main thread.
For instance, here I'm quoting one of the most extensive books on Android, "The Busy Coder's Guide To Android Development":
You really should do your database I/O on background threads. Opening a database is cheap, but working with it (queries, inserts, etc.) is not.
The problem is that despide all those recommendations, none of those books give a clear idea of how to do what they recommend. I know that when we're taking our first steps into the Android FW, we tend to use the AsyncTask for almost everything, but on further reading I came to the conclusion that I should stay away from that class, for many reasons, mainly because coordinating long-running tasks over the Activity lifecycle can be difficult and memory leaks can result if you aren't careful.
For that reason I always wanted to have the chance to ask a professional developer/author how they handle that kind of operations in a real-world application.