Android toast消息显示为';s闪烁-安卓

Android toast消息显示为';s闪烁-安卓,android,toast,Android,Toast,如何阻止应用程序多次显示toast消息?无论我何时向一个、两个或更多联系人发送短信,都会多次显示祝酒词。有时,祝酒词在显示“短信已发送”信息时会闪烁2、4、18次。我认为这是短信发送量的两倍。如果我将它发送到一个数字,它将显示2,依此类推 try { String message = "firealert"; String additionalMessage = send_input.getText().toStr

如何阻止应用程序多次显示toast消息?无论我何时向一个、两个或更多联系人发送短信,都会多次显示祝酒词。有时,祝酒词在显示“短信已发送”信息时会闪烁2、4、18次。我认为这是短信发送量的两倍。如果我将它发送到一个数字,它将显示2,依此类推

try {

                    String message = "firealert";
                    String additionalMessage = send_input.getText().toString();
                    info.open();
                    ArrayList<String> data = info.getContactNumber();
                    info.close();
                    for(String contactNum : data)
                    {
                        sendSMS("0".concat(contactNum), message+" "+additionalMessage);
                        //sendSMS(contactNum, message+" "+additionalMessage);
                    }
                    } catch (Exception e) {
                        Toast.makeText(getApplicationContext(),
                        "SMS failed, please try again later!",
                        Toast.LENGTH_LONG).show();
                        e.printStackTrace();
                    }

您可以做的是创建一个Toast变量

private Toast t;

if(t!=null)    
   t.cancel();
Toast.makeText(getBaseContext(), "SMS sent", 
                                Toast.LENGTH_SHORT).show();


短信内容是否超过160个字符?您可能会看到Toast(content.length()/160)次吗?
短信可能被分成几个部分。

也许我以后会在安卓手机上再试一次。我现在正在使用emulator。我想它会将消息“sms sent”增加一倍。如果我把它发送到1号,它会显示2号,因此我尝试了你的代码,它在我第一次发送消息时起作用。然后,我第二次发送消息时,它会将toast消息加倍。第三,第四等等…我仍然不知道这里发生了什么。我不知道这是否与我在ArrayList中获取电话号码的方式有关,但我想不是,它只向cel号码发送了一次短信。我认为它将短信“已发送”翻了一倍。如果我将它发送到一个数字,它将显示2,依此类推
private Toast t;

if(t!=null)    
   t.cancel();
Toast.makeText(getBaseContext(), "SMS sent", 
                                Toast.LENGTH_SHORT).show();
if(t==null)    
    Toast.makeText(getBaseContext(), "SMS sent", 
                                    Toast.LENGTH_SHORT).show();