在BroadcastReceiver类中启动Activity,有时能进入到所启动的Activity类中,有时进入不了
wqxyk 2011-06-09 04:56:57 public class SmsReciver extends BroadcastReceiver {
private static final String SMS_RECEIVED = "android.provider.Telephony.SMS_RECEIVED";
public String newmessage;//static
@Override
public void onReceive(Context context, Intent intent) {
if (intent.getAction().equals(SMS_RECEIVED)) {
Bundle bundle = intent.getExtras();
if (bundle != null) {
Object[] pdus = (Object[]) bundle.get("pdus");
for (int i = 0; i < pdus.length; i++){
messages[i] = SmsMessage.createFromPdu((byte[]) pdus[i]);
}
for(SmsMessage message : messages) {
newmessage = message.getMessageBody();
Intent newIntent = new Intent(context,AirFluxActivity.class);
// 在Service中启动Activity,必须设置如下标志
newIntent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
context.startActivity(newIntent);
}
}
}
}
}