我用的alarmManager来实现定时发送的,请看代码:          public class SendMmsService extends Service{
          public static final String BROADCAST_ACTION="com.demo.sendMms";
          public static final String SEND_SMS_SUCCESS="com.demo.sendSuccess";
 private SmsManager smsManager;
          private PendingIntent pSendSuccessIntent,pAskServiceIntent;
          private BroadcastReceiver  mReceiver;
          private AlarmManager alarm;
 @Override
 public void onCreate(){
  super.onCreate();
           registerReceiver(mReceiver, new IntentFilter(BROADCAST_ACTION));
  Intent mIntent=new Intent(this,MmsList.class);
  mIntent.setAction(SEND_SMS_SUCCESS);
  pSendSuccessIntent=PendingIntent.getBroadcast(this, 0, mIntent, 0);
  Intent intent=new Intent(BROADCAST_ACTION);
  pAskServiceIntent=PendingIntent.getBroadcast(this, 0, intent, 0);
  alarm=(AlarmManager)this.getSystemService(ALARM_SERVICE);
  //**Receiver Broadcast and send SMS
  mReceiver=new BroadcastReceiver(){
@Override
public void onReceive(Context context, Intent intent) {
// TODO Auto-generated method stub
    Log.d("SendMmsService","sendSms is runing...");  
    sendSms();
}
  
    };
           sendBoadcast();
}
  public void sendBoadcast(){
Calendar  calendar=Calendar.getInstance();
calendar.setTimeInMillis(System.currentTimeMillis());    
calendar.add(Calendar.SECOND, 5);
alarm.set(AlarmManager.RTC_WAKEUP, calendar.getTimeInMillis(), pAskServiceIntent);
}}
运行了下发现,定义的广播接受者mReceiver没有执行动作,找了半天资料无解,请大侠指教下,拜谢~~!

解决方案 »

  1.   

    单步跟踪了下,能运行到这一步:alarm.set(AlarmManager.RTC_WAKEUP, calendar.getTimeInMillis(), pAskServiceIntent);
      

  2.   

    因为你注册的接受广播和发送广播不匹配
    这是你的接受广播:
    registerReceiver(mReceiver, new IntentFilter(BROADCAST_ACTION));
    public static final String BROADCAST_ACTION="com.demo.sendMms";
    而你的发送广播里面都没有这个intent.....
       Intent it = new Intent("com.demo.sendMms");
                sendBroadcast(it);
    你把你的发动广播改成上面的试试。