2013-04-24 48 views
0

有沒有人有過這個問題之前,或有人可以解釋我發生了什麼?Android sentIntent的smsManager.sendTextMessage使UI刷新

代碼說明: 以下代碼從我的對象ContactFromXML中獲取一些信息,並在需要的地方發送一些文本消息。

代碼:

 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); 
       } 
      } 
     } 

問題: 對於每一個我的代碼發送的TextMessage,它像是刷新UI。首先,我想這將是因爲從我的UI線程發送的消息,所以我把它放到一個AsyncTask中。但是這並沒有解決任何問題。經過一些測試後,我發現這是因爲de SentItent'pi'。如果我不使用它,它沒有任何問題。

問題: 任何人都可以解釋這一點嗎?我真的希望使用該功能來查看是否實際發送了文本消息,而不會讓用戶注意到UI刷新。

+0

你想用'PendingIntent'做什麼? – 2013-04-24 10:30:12

+0

PendingIntent在sendTextMessage中設置爲sentIntent。後來在我的代碼中,我將把一個監聽器放在它上面,以確保textmessage實際上被髮送。 – 2013-04-24 11:14:15

回答

0

Android Developer SitesentIntent這是一個PendingIntent發送when the message is successfully sent, or failed.這裏你設置的活動在PendingIntent,所以每當你的消息是sentfailed發送,您PendinfIntent被激活,並刷新您的活動。

+0

感謝您的信息。任何人都有一個想法如何克服刷新或繞過它仍然使用sentIntent? – 2013-04-24 13:30:47

+0

使用'PendingIntent pi = PendingIntent.getBroadcast(this,0,sent,0)'where'sent' is'Intent sent = new Intent(「SMS_SENT」)' – 2013-04-24 13:51:36

+0

並使用'BroadcastReceiver'接收廣播 – 2013-04-24 13:52:02