Just wanted to let you guys know I've been looking for a way to execute some tasks in the background to keep the application responsive. An example is creating a local SQLite database, or upgrading the database schema to a new version. Invoking remote services also come to mind.
The JVM in ADF Mobile is based on 1.4 so you don't have the great java.util.concurrent classes available. Fortunately the java.util.concurrent classes for 1.5 are based on (much) earlier work by Doug Lea that is compatible with older JVMs. I just downloaded this from http://gee.cs.oswego.edu/dl/classes/EDU/oswego/cs/dl/util/concurrent/intro.html and embedded it in my application. It works great with the ADF Mobile JVM.
I've mainly been using FutureResult, Callable, Executor and ThreadedExecutor.
Might even be worthwhile to include these classes with ADF Mobile GA or otherwise hint at their existence from the documentation.