我用的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没有执行动作,找了半天资料无解,请大侠指教下,拜谢~~!
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没有执行动作,找了半天资料无解,请大侠指教下,拜谢~~!
解决方案 »
- 监听新短信的receiver,无法监听成功
- flex手机项目如何设置始终保持横屏或竖屏
- Activity向自定义的View传值,望高手指点思路!
- 循环里调用Bitmap.recycle(),出现异常:trying to use a recycled bitmap。
- android使用全局变量。求解答啊。来人啊,泪奔了!!!
- 关于Absolutelayout
- decodeYUV420SP 后的RGB数据如何显示?
- 修改模拟器hosts文件,push的时候总是出错
- DrawerLayout求大神解答,抽屉效果的问题
- 请问类似于Google now、必应、绿色守护等,可以通过虚拟home键上滑启动或进行操作是如何实现的。
- android这个控件是什么
- 有个关于选择问题的写法。
这是你的接受广播:
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);
你把你的发动广播改成上面的试试。