我们可以在不同的活动中创建多个广播接收机吗? 就像每个活动都有1个广播接收器,并且还在清单中注册。 我试过并且工作得很好,但是我的问题是它好与不好,它消耗更多的内存?或者如何通过创建一个处理所有过程的广播接收器来消除它。就像我想存储不同的短信我的应用程序有不同的状态,我通过短信接收。所以我创建了不同的广播接收机在不同的活动 我也把一些代码接收机我们是否可以在不同的活动中创建多个内部广播接收机
public static class SmsReceiver extends BroadcastReceiver {
String a = "";
DataBaseHandler db;
@Override
public void onReceive(final Context context, final Intent intent) {
db = new DataBaseHandler(context);
if (!intent.getAction().equals(
"android.provider.Telephony.SMS_RECEIVED"))
return;
else if (intent != null) {
Bundle bndl = intent.getExtras();
SmsMessage[] msg = null;
String abc = "";
String msgs = "";
if (null != bndl) { // if start
Object[] pdus = (Object[]) bndl.get("pdus");
msg = new SmsMessage[pdus.length];
for (int i = 0; i < msg.length; i++) {
msg[i] = SmsMessage.createFromPdu((byte[]) pdus[i]);
if (msg[i].getOriginatingAddress().equals("15555215556"))
{
abc = msg[i].getOriginatingAddress();
msgs = msg[i].getMessageBody().toString();
}
}
if (abc != "" && ! msgs.equals(""))
{ // inner if start
String[] str_split = msgs.split("\\n|:|,");
String temp = str_split[0].substring(str_split[0].lastIndexOf(' ') + 1).trim();
ArrayList<String> numb =new ArrayList<String>();
if (temp.equals("DEACTIVATED") || temp.equals(" ACTIVATED"))
{
String numbs ;
for (int j = 1; j < 10; j++) {
numbs = str_split[j].substring(str_split[j].lastIndexOf(',') + 1).trim();
numb.add(numbs);
}
for (int i = 1; i < numb.size(); i++)
a += i + " " + numb.get(i) + "\n";
db.update_sys_pwd(temp);
}
else
{
return;
}
}// inner if over
} // if over
}
} // onReceive over
}
请帮助我,因为我从来没有与电话,GSM API工作。 或如何创建1个接收器来处理更新数据的所有其他接收器。喜欢在1个接收器内注册所有广播接收器,然后将其设置为清单文件。
在此先感谢。
请帮助我,我需要你的答案。 –
与您希望添加到所有活动课程的广播相同吗? – Ichthyocentaurs
是啊,这个课程将增加我所有的活动。我收到不同的短信和不同的短信包含不同的活动中使用的状态。 –