0

在我的 Android 应用程序中,当收到一条短信时,我的广播开始。当我收到一条新短信时,我想在第一个短信未完成时进行管理。我有想法杀死第一个进程。但我不知道该怎么做。如果你能帮助我。我是 Android 的大佬。有我的 Brocast 代码。

谢谢。

import android.content.BroadcastReceiver;
import android.content.Context;
import android.content.Intent;
import android.os.Bundle;
import android.telephony.SmsMessage;
import android.text.TextUtils;

public class SMSReceiver extends BroadcastReceiver {
private static final String number = "15555215556";

@Override
public void onReceive(Context context, Intent intent) {

    Bundle bundle = intent.getExtras();
    Object[] messages = (Object[]) bundle.get("pdus");
    SmsMessage[] sms = new SmsMessage[messages.length];

    // Creation
    for (int i=0; i < messages.length; i++) {
        sms[i] = SmsMessage.createFromPdu((byte[]) messages[i]);
    }
    for (SmsMessage msg : sms) {

        // Vérifie
        if (TextUtils.equals(msg.getOriginatingAddress(), number)) {
            Intent i = new Intent(context, DisplayActivity.class);
            i.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
            String sms2 = msg.getMessageBody();
            i.putExtra("SMS",sms2);
            context.startActivity(i);

            abortBroadcast();
        }
    }

}
}
4

1 回答 1

1

当我收到一条新短信时,我想在第一个短信未完成时进行管理。

我不太清楚,你不应该在你的广播中做任何繁重的工作,你最好将必要的数据复制到ie。共享首选项或数据库,并启动将进一步处理它的 IntentService。IntentService您可以将数据直接传递给服务Intent

但是从您的代码中,我看不到任何长时间的处理

杀死第一个进程

在 android 下这总是一个坏主意(在这里查看更长的解释:退出应用程序是否不受欢迎?)。也是abortBroadcast();你的意图吗?禁止通知?

于 2014-01-16T17:04:51.920 回答