Наконец-то я нашел решение с широковещательными приемниками. INT sms_receiver.java, когда получили смс, я вещать намерение:
Intent intent2 = new Intent();
intent2.setAction("co.ir.ts.app.sms.smsumad");
context.sendBroadcast(intent2);
В манифесте приложения в определении SMSlist_activity.java добавить Intent фильтра, чтобы мой SMSlist_activity.java может принимать широковещательный:
<activity
android:name=".activity.SMSlist_activity">
<intent-filter>
<action android:name="co.ir.ts.app.sms.smsumad" >
</action>
</intent-filter>
</activity>
Теперь в главном классе SMSlist_activity.java определяют широковещательный приемник:
private BroadcastReceiver receiver = new BroadcastReceiver() {
@Override
public void onReceive(Context context, Intent intent) {
//Updating UI here
}
};
в методе onResume регистр приемник, созданный ранее:
@Override
protected void onResume() {
// TODO Auto-generated method stub
IntentFilter filter = new IntentFilter();
filter.addAction("co.ir.ts.app.sms.smsumad");
registerReceiver(receiver, filter);
super.onResume();
}
и, наконец, в методе OnPause разрегистрировать приемник:
protected void onPause()
{
unregisterReceiver(receiver);
super.onPause();
if (isSentPending)
{
unregisterReceiver(sent);
}
}