[英]Android Broadcast receiver management
在我的Android應用程序中,當收到短信時,我的廣播開始。 當第一個未完成時,我想管理何時收到新的SMS。 我有想法殺死第一個過程。 但是我也不是要做什么。 如果你能幫助我。 我是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();
}
}
}
}
當第一個未完成時,我想管理何時收到新的SMS。
這對我來說不是很清楚,您不應該在廣播中做任何繁重的工作,最好將必要的數據復制到ie。 共享首選項或數據庫,然后啟動IntentService對其進行進一步處理。 使用IntentService
您可以將數據直接在Intent
傳遞給服務。
但是從您的代碼中我看不到任何長時間的處理
殺死第一個過程
在android下,這始終是一個壞主意(請在此處查看更長時間的解釋: 退出應用程序后會皺眉嗎? )。 同樣是abortBroadcast();
你打算 抑制通知?
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.