如何将数据从SMS广播接收器传递到相关片段以更新数据。 我创建了一个演示,其中我有7个不同的片段,其中有不同种类的状态是通过。我创建了内部广播接收器,但它不是个好主意,因为当短信到达时,它会调用所有内部类,所以我想在广播接收器类上创建,然后在接收到的短信上我想更新数据,我也想将它们存储在数据库中如果片段当前打开,则更新其状态,如更改短信状态从开到关的按钮颜色。如何将数据从SMS广播接收器传递到相关片段
我已经把短信广播接收器的onReceive()方法好心地帮助我。
@Override
public void onReceive(Context context, Intent intent)
{
db = new DataBaseHandler(context);
Bundle bundle = intent.getExtras();
if (bundle != null) {
Object[] pdus = (Object[]) bundle.get("pdus");
final SmsMessage[] messages = new SmsMessage[pdus.length];
for (int i = 0; i < pdus.length; i++) {
messages[i] = SmsMessage.createFromPdu((byte[]) pdus[i]);
if (messages[i].getOriginatingAddress().equalsIgnoreCase("+91XXXXXXXXXX"))
systemnumber = true;
}
if (systemnumber)
{
if (messages.length > 0)
{
StringBuffer content = new StringBuffer();
for (SmsMessage sms : messages)
content.append(sms.MessageBody());
mySmsText = content.toString();
}
if(mySmsText.length() == 125)
{
// here i want to pass data from broadcast receiver to it's relevant fragment
}
else if(mySmsText.length() == 231 && mySmsText.replaceAll(" +", " ").split("\\n|\\s")[0].equals("ON"))
{
// here i want to pass data from broadcast receiver to it's relevant fragment
} }
} else
}
}
U可以尝试某种事件总线,奥托,EventBus等 – darwin
的我从来没有用广播接收器和短信等等工作我对此没有任何想法。 –
检查此链接https://github.com/greenrobot/EventBus – darwin