Решил задачу следующим образом: SMSMonitor более не вызывает SmsService, который стартовал активити. SMSMonitor теперь шлет широковещательное сообщение:
Intent mIntent = new Intent("SmsMessage.intent.MAIN");
mIntent.putExtra("sms_code", code);
context.sendBroadcast(mIntent);
А в методе onResume класса PasswordActivity я регистрирую BroadcastReceiver:
IntentFilter intentFilter = new IntentFilter("SmsMessage.intent.MAIN");
mIntentReceiver = new BroadcastReceiver() {
@Override
public void onReceive(Context context, Intent intent) {
sms_code = intent.getIntExtra("sms_code",0);
if (sms_code > 0) {
// Необходимые операции с элементами view и методами активити
}
}
};
registerReceiver(mIntentReceiver, intentFilter);