Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/214.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 不需要的自动创建活动类的新实例_Java_Android - Fatal编程技术网

Java 不需要的自动创建活动类的新实例

Java 不需要的自动创建活动类的新实例,java,android,Java,Android,我有一个活动(称为Sender),具有最基本的UI,只有一个按钮在单击时发送消息。在onClickListener中,我只调用此方法: private void sendSMS(String msg) { PendingIntent pi = PendingIntent.getActivity(this, 0, new Intent(this, Sender.class), 0); PendingIntent pi = PendingIntent.get

我有一个活动(称为Sender),具有最基本的UI,只有一个按钮在单击时发送消息。在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非常陌生,因此我需要一些帮助,我只希望同一个发件人始终处于启用状态

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

发送文本消息的
pendingent
参数用于向应用程序的组件发送反馈,报告SMS是否成功发送

通常,您应该创建一个启动广播而不是活动的
pendingent


如果您不关心短信是否成功发送,那么只需传入
null
而不是
pi

您真的定义了pi两次还是剪切/粘贴错误?