다른 활동에서 둘 이상의 브로드 캐스트 수신기를 만들 수 있습니까? 모든 활동과 마찬가지로 에는 브로드 캐스트 리시버가 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는 다른 활동에서 사용되는 다른 상태를 포함한다. –