我使用SmsManager从我的应用程序发送短信。代码如下所示
PendingIntent sentPI = PendingIntent.getBroadcast(context, 0, new Intent(SENT), 0);
SmsManager sms = SmsManager.getDefault();
sms.sendTextMessage(phone_number, null, message, sentPI, null);
我使用broadcastReceiver作为上述SMS任务的监听器。 broadcastReceiver将调用它的onReceive侦听器方法来指示短信被发送。这个监听器放在我的activty
的onResume()方法中context.registerReceiver( br = new BroadcastReceiver() {
public void onReceive(Context arg0, Intent arg1) {
switch (getResultCode()) {
case Activity.RESULT_OK:
Log.w("MainActivity", "SMS is sent");
// TO-DO sms is sent, display the user
break;
}
}
}, new IntentFilter(SENT));
一切都与逻辑完美配合。问题出现在我离开活动时,在我回到我的应用程序之前发送短信。因为在onPause方法中我取消注册了服务,这里没有监听器而且我的活动UI没有更新。
无论如何要克服这个问题?