我最近问了一个关于检查已发送短信状态的问题,给出的答案是一个代码片段,注册了两个“匿名内部”(如果不正确,请更正我的术语)BroadcastReceivers监听短信发送/传送的广播.这些接收器只需要接收有关我的应用程序刚刚发送的SMS的数据,因此不需要永久收听.
我的直接想法是“好吧,我完成后我需要取消注册”,但这是正确的吗?我问海报,因为他没有包含任何未注册的代码,但没有得到回复.代码似乎是一种非常标准的方式来做我想要的,因为它出现在许多Android开发网站上.这里是:
//---sends an SMS message to another device---
private void sendSMS(String phoneNumber, String message)
{
String SENT = "SMS_SENT";
String DELIVERED = "SMS_DELIVERED";
PendingIntent sentPI = PendingIntent.getBroadcast(this, 0,
new Intent(SENT), 0);
PendingIntent deliveredPI = PendingIntent.getBroadcast(this, 0,
new Intent(DELIVERED), 0);
//---when the SMS has been sent---
registerReceiver(new BroadcastReceiver(){
@Override
public void onReceive(Context arg0, Intent arg1) {
switch (getResultCode())
{