如何將數據從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