들어오는 SMS 메시지를 처리하기 위해 BroadcastReceiver를 사용하는 작동하는 응용 프로그램이 있습니다. 내 질문은 들어오는 SMS 작업을 수행하는 가장 좋은 방법은 무엇입니까? 현재 내 BroadcastReceiver의 onReceive() 메소드에 표시된 것처럼 작업을 수행 할 새 스레드가 시작됩니다.Android에서 SMS_RECEIVED 작업을 수행하는 가장 좋은 방법은 무엇입니까?
@Override
public void onReceive(final Context ctx, Intent intent) {
if(intent.getAction().equals(ANDROID_SMS_DELIVER)) {
Bundle bundle = intent.getExtras();
if (bundle != null){
try{
Object[] pdus = (Object[]) bundle.get("pdus");
SmsMessage[] msgs = new SmsMessage[pdus.length];
for(int i=0; i<msgs.length; i++){
msgs[i] = SmsMessage.createFromPdu((byte[])pdus[i]);
final String smsFrom = msgs[i].getOriginatingAddress();
final String smsBody = msgs[i].getMessageBody();
// Launch a thread to do work on the SMS
new Thread() {
public void run() {
// Work..
}
}.start();
}
} catch(Exception e){}
}
}
}
이 방법이 최선입니까? 또는 다른 IntentService에 브로드 캐스트를 보내야만 작업을 수행 할 수 있습니까? 아니면이 작업이 올바르게 수행됩니까?
감사합니다.
BroadcastReceiver는 x 초 동안 만 생존 할 것입니다. (나는 10 개라고 생각합니다.) 스레드와 어떤 일이 일어날 지 모르겠습니다. 작동하면 쉽게 시도해 볼 수 있습니다. 하지만 내 전화 인 경우 IntentService를 사용합니다. 더 명확하고 정의 된 동작 – RvdK