2013-04-24 3 views
0

У кого-нибудь была эта проблема раньше или кто-нибудь может объяснить мне, что происходит?Android sentIntent smsManager.sendTextMessage обновляет пользовательский интерфейс

Описание Код: После кода принимает информацию от моего объекта ContactFromXML и посылает некоторые textmessages, где это необходимо.

Код:

 PendingIntent pi = PendingIntent.getActivity(this, 0, new Intent(this, MainActivity.class), 0); 
     for (int i=0; i<contactsCount;i++){ 
      while(contactsIt.hasNext()){ 
       ContactFromXML contact = contactsIt.next(); 
       if (mTeam.equals(contact.mTeam)){ 
        smsMessage = String.format(getResources().getString(R.string.mess_sms_message), contact.mVoornaam, mTimeOfArrival); 
        smsManager.sendTextMessage(contact.mTel, null, smsMessage, pi , null); 
       } 
      } 
     } 

Проблема: Для каждого Отпрака, что мой код посылает, это своего рода обновляет интерфейс. Прежде всего, это было связано с тем, что сообщения, отправленные из моего потока пользовательского интерфейса, поэтому я поместил его в AsyncTask. Но это ничего не решило. После некоторого тестирования я узнал, что это было из-за SentItent 'pi'. Если я не использую его, это не создает проблем.

Вопрос: Может ли это объяснить это? Я бы очень хотел использовать эту функцию, чтобы увидеть, действительно ли отправлено текстовое сообщение, без этого пользователи замечают обновление пользовательского интерфейса.

+0

Что вы пытаетесь сделать с помощью функции «PendingIntent»? –

+0

Функция PendingIntent устанавливается в sendTextMessage как sentIntent. Позже в моем коде я собираюсь поставить на него слушателя, чтобы убедиться, что текстовое сообщение действительно отправлено. –

ответ

0

Согласно Android Developer Site, то sentIntent, который является PendingIntent отправляется when the message is successfully sent, or failed. Здесь вы настраиваете деятельность в PendingIntent, поэтому всякий раз, когда ваше сообщение sent или failed быть отправлен, ваш PendinfIntent активируется, и обновляет вашу деятельность.

+0

Спасибо за информацию. У кого-нибудь есть идея, как преодолеть обновление или обойти его, все еще используя sentIntent? –

+0

use 'PendingIntent pi = PendingIntent.getBroadcast (это, 0, отправлено, 0)' где 'sent' является' Intent sent = new Intent («SMS_SENT») ' –

+0

и использовать' BroadcastReceiver' для приема трансляции –

Смежные вопросы