Android 如何将数据从广播接收器传输到服务

Android 如何将数据从广播接收器传输到服务,android,broadcastreceiver,android-service,Android,Broadcastreceiver,Android Service,我正在制作一个应用程序,用于通过短信进行投票。我想要的是,如果有人说“是”,我的“是”计数得到+1,对于“否”的情况也是一样,我希望这是在后台完成的,所以我使用的是服务。并在myMainActivity上显示最终结果。我尝试了,并编写了以下代码: 广播接收机 /*Bundle bundle = intent.getExtras(); SmsMessage[] msg = null; String body = ""; if (bundle !=

我正在制作一个应用程序,用于通过短信进行投票。我想要的是,如果有人说“是”,我的“是”计数得到+1,对于“否”的情况也是一样,我希望这是在后台完成的,所以我使用的是服务。并在my
MainActivity
上显示最终结果。我尝试了,并编写了以下代码: 广播接收机

/*Bundle bundle = intent.getExtras();
        SmsMessage[]  msg = null;
        String body = "";
        if (bundle != null) {
            Object[] pdus = (Object[]) bundle.get("pdus");
            msg = new SmsMessage[pdus.length];
            for (int i = 0; i < msg.length; i++) {
                body = msg[i].getMessageBody().toString();              
            }
        }*/

        String body = "yes";
        if(body.equals("YES") || body.equals("yes")|| body.equals("y") || body.equals("Y")){
            Intent yes = new Intent(context,PollCounter.class);
            yes.putExtra("yes", true);
            yes.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
            context.startService(yes);
            context.stopService(yes);
        }
        else if(body.equals("NO") || body.equals("no")|| body.equals("n") || body.equals("N")){
            Intent no = new Intent(context,PollCounter.class);
            no.putExtra("no", true);
            no.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
            context.startService(no);
            context.stopService(no);
        }
        else {
            Intent invalidMsg = new Intent(context,PollCounter.class);
            invalidMsg.putExtra("invalidMsg", true);
            context.startService(invalidMsg);
        }
    }

}
我尝试使用
Bundle b=intent.getExtras()但我不确定如何使用它,以及我应该用什么初始化
intent

谢谢 附言:我对安卓系统还不熟悉。对不起,如果我的问题有点奇怪或者我的编码看起来很奇怪

你好像忘了

msg[i] = SmsMessage.createFromPdu((byte[])pduArray [i]);
在你的周期中

应该是

for (int i = 0; i < msg.length; i++) {
         msg[i] = SmsMessage.createFromPdu((byte[])pduArray [i]);
         body = msg[i].getMessageBody().toString();              
}
for(int i=0;i

否则
getMessageBody()
确实会返回
null

始终在此处发布完整的日志猫//谢谢,该问题已解决。。。我会在将来发布logcat。。。数据传输呢。。请在这方面需要帮助…看来你的问题实际上是两个独立的问题。其中一个问题已得到答复。也许你需要编辑这篇文章来澄清另一个问题是什么?谢谢。。。这解决了我的一个问题。。。我真的忘了。。。请给我介绍一下从BroadcastReceiver到Service的数据传输……主要问题是如何从
BroadcastReceiver
Service
获取数据。。我无法获得数据。。。我不知道怎么做。。。
msg[i] = SmsMessage.createFromPdu((byte[])pduArray [i]);
for (int i = 0; i < msg.length; i++) {
         msg[i] = SmsMessage.createFromPdu((byte[])pduArray [i]);
         body = msg[i].getMessageBody().toString();              
}