不必要地自动创建活动类的新实例

时间:2010-05-11 21:08:06

标签: java android

我有一个具有最基本UI的活动(称为Sender),只有一个按钮在单击时发送消息。在onClickListener中我只调用此方法:

private void sendSMS(String msg)
    {
     PendingIntent pi = PendingIntent.getActivity(this, 0, 
      new Intent(this, Sender.class), 0);
     PendingIntent pi = PendingIntent.getActivity(this, 0, myIntent, 0);
     SmsManager sms = SmsManager.getDefault();
     sms.sendTextMessage("1477", null, msg, pi, null);
    }

这样可以正常发送消息,但每次发送消息时,都会在另一个上面启动新的Sender实例。如果我调用sendSMS方法三次,则启动三个新实例。我对android很新,所以我需要一些帮助,我只想让同一个发件人一直在这里

2 个答案:

答案 0 :(得分:1)

PendingIntent sendTextMessage参数用于向您的应用程序组件发送反馈,报告SMS是否已成功发送。

通常您应该创建一个PendingIntent来启动广播而不是活动

如果您不关心SMS是否已成功发送,则只需传入null而不是pi

答案 1 :(得分:0)

尝试将android:launchMode =“singleTask”添加到清单中的活动条目。可以找到更多信息here