-If you want your application to work on wide range of mobile phones,
Java ME is only and the best solution without any doubt.
-"a program that remains resident in mobile phone memory" means
installed program? or you want to run this application without
installing? Java ME applications are managed by a AMS (java runtime
environment for MIDlets). You have to install your application.
-what do you mean by "main screen"? As I guess you need your
application to start when it receives data and display something on
screen. For such scenario you can use Java ME push Registry.