Android 发送短信时所有变量都被重置

Android all variables are reset when SMS is sent

嘿,我正在制作一个应用程序,我需要在其中发送一条短信,但每次我发送消息时,应用程序都会再次打开并且所有变量都被重置(我试图实现一个保存变量的系统但它们仍会重置),但它仍会发送消息。为什么要这样做,我该如何解决;这是我的代码

public void sendSMS(String phono, String mes)
    {
        PendingIntent pi = PendingIntent.getActivity(this, 0,
        new Intent(this, MainActivity.class), 0);
        SmsManager sm = SmsManager.getDefault();
        sm.sendTextMessage(phono, null, mes, pi, null);
    }
         //Button that uses method
  b = (Button) findViewById(R.id.b);
    b.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View v)
        {
            phono = "personal phone number";
            if (phono.length() > 0 && mes.length() > 0)
                sendSMS(phono, mes);
            }
        });

您要求 SMSManager 在 SMS 发送成功后重新启动您的应用程序。

来自docs,

public void sendTextMessage (String destinationAddress, String scAddress, String text, PendingIntent sentIntent, PendingIntent deliveryIntent),

你的代码中的pi会被用作sentIntent,也就是说当短信发送出设备时,SMSManager会自动触发intent。

如果您不希望短信管理器在发送短信后再次重新启动您的应用程序,只需发送 null 代替 pi

sm.sendTextMessage(phono, null, mes, null, null);

sm.sendTextMessage(phono, null, mes, pi, null);替换为 sm.sendTextMessage(phono, null, mes, null, null);