gpt4 book ai didi

java - 在 Android 上处理 SMS_RECEIVED 的最佳方式是什么?

转载 作者:行者123 更新时间:2023-11-29 05:23:25 24 4
gpt4 key购买 nike

我有一个工作应用程序,它使用 BroadcastReceiver 来处理传入的 SMS 消息。我的问题是处理收到的短信的最佳方式是什么?目前我正在启动一个新线程来完成这项工作,如下面我的 BroadcastReceiver 的 onReceive() 方法所示。

@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 只会存在 10 秒(给定或接受)。我不知道你的线程会发生什么。

最好的方法是使用 IntentService。此 Service 通过 Intent 启动/启动,完成后将自行关闭。

关于java - 在 Android 上处理 SMS_RECEIVED 的最佳方式是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23740066/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com