Обновить пользовательский интерфейс активности в смс, полученном от широковещательного приемника

  1. У меня есть SMSlist_activity.java, который отображает список смс-разговоров.
  2. У меня есть sms_receiver.java, который является широковещательным приемником для входящих смс.

Теперь я хочу обновить список смс-разговоров в SMSlist_activity.java, когда смс получено через sms_receiver.java, конечно, это обновление произойдет только в том случае, если SMSlist_activity.java запущен и виден.

Если у кого есть идеи, буду рад вот этому.


person farhad.kargaran    schedule 07.02.2015    source источник


Ответы (1)


Наконец я нашел решение с широковещательными приемниками. 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);
    }
}
person farhad.kargaran    schedule 08.02.2015