Btw, I still have the content being read out. You may want to comment it out, if it infringes on your privacy. :D.
This app does not have an activity. Not required, anyway, isn't it?
There is TextToSpeechService which runs in the background and a SMSReceiver which extends Broadcast receiver. SMSReceiver, on receiving an intent of "android.provider.Telephony.SMS_RECEIVED" , triggers the TextToSpeechService which does all the talking. This is pretty much the summary.
You will see some hardcoding in the speakWords(...) method, E.g. StringBuffer buf = new StringBuffer("You have sms from....");
You may put all the hard-coding in the strings.xml. This is just a simple example. The app can be extended to look up the phone book and read out the sms only if the sender is in the contacts list.
I can mail you the source code if would like to play around. :)