異なる活動で複数の放送受信機を作成できますか? はすべてのアクティビティに1台のブロードキャスト受信者があり、マニフェストにも登録されています。 私はうまくやってみましたが、私の質問はそれが良いかどうか、そしてそれ以上のメモリを消費することですか?すべてのプロセスを処理する1つのブロードキャスト受信機を作成することによって、どのように排除できますか?別のSMSを保存したいのと同じように、私のアプリケーションにはSMSを介して受け取るステータスの種類が異なります。だから私は別の活動で別の放送受信機を作成しました。 また、私は電話、GSMのAPIで動作しませんので、私を助けてくださいレシーバ異なる活動で複数の内部放送受信機を作成することができます
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
}
のためのいくつかのコードを置きます。 、または、どのようにして1つの受信機を作成して、他のすべての受信機を更新データ用に処理することができますか。すべての放送受信機を1台の受信機に登録して、それをマニフェストファイルに設定するのが好きです。
ありがとうございます。
私はあなたの答えが必要です。 –
すべてのアクティビティクラスに追加したいのと同じ種類のブロードキャストですか? – Ichthyocentaurs
ええ、このクラスは私のすべての活動に追加されます。私は異なるSMSを受け取り、異なるSMSには異なる活動で使用される異なるステータスが含まれています。 –