Android   发布时间:2022-04-28  发布网站:大佬教程  code.js-code.com
大佬教程收集整理的这篇文章主要介绍了android – SMS BroadCast Receiver多次收到?大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。
我在我的应用程序中使用短信广播接收器.当我发送第一个短信时,它会弹出一条短信作为短信发送.当我发送第二个请求时,弹出消息加倍.它第三次增加了三倍,等等.我使用以下代码发送和接收广播.

private void sendrequest()
    {        
        String SENT = "SMS_SENT";
        String DELIVERED = "SMS_DELIVERED";

        PendingIntent sentPI = PendingIntent.getBroadcast(this,new Intent(SENT),0);

        PendingIntent deliveredPI = PendingIntent.getBroadcast(this,new Intent(DELIVERED),0);

        //---when the SMS has been sent---
        registerReceiver(new BroadcastReceiver(){
            @Override
            public void onReceive(Context arg0,Intent arg1) {
                switch (getResultCode())
                {
                    case Activity.RESULT_OK:
                        Toast.makeText(getBaseContext(),"SMS sent",Toast.LENGTH_SHORT).show(); 
                        break;
                    case Smsmanager.RESULT_ERROR_GENERIC_FAILURE:
                        Toast.makeText(getBaseContext(),"Invalid Phonenumber",Toast.LENGTH_SHORT).show();
                        break;
                    case Smsmanager.RESULT_ERROR_NO_serviCE:
                        Toast.makeText(getBaseContext(),"No service",Toast.LENGTH_SHORT).show();
                        break;
                    case Smsmanager.RESULT_ERROR_NULL_PDU:
                        Toast.makeText(getBaseContext(),"Null PDU",Toast.LENGTH_SHORT).show();
                        break;
                    case Smsmanager.RESULT_ERROR_RAdio_OFF:
                        Toast.makeText(getBaseContext(),"Radio off",Toast.LENGTH_SHORT).show();
                        break;
                }
            } 
        },new IntentFilter(SENT));


       Smsmanager sms = Smsmanager.getDefault();
        sms.sendTextmessage(sms_phonenumber,null,sms_message,sentPI,null);

我不确定这是否正在发生.我正在从mainactivity发送短信.

谢谢你的帮助..

解决方法

看起来因为每次调用sendrequest都会再次注册BroadcastReceiver ……..

你应该只注册一次BroadcastReceiver,并且应该在生活活动之前取消注册……..

仅在onStart和onStop注册注册工作一次,如link所示

大佬总结

以上是大佬教程为你收集整理的android – SMS BroadCast Receiver多次收到?全部内容,希望文章能够帮你解决android – SMS BroadCast Receiver多次收到?所遇到的程序开发问题。

如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。