为了账号安全,请及时绑定邮箱和手机立即绑定

Broadcast service 没有被调用

Broadcast service 没有被调用

肥皂起泡泡 2019-03-20 18:15:33
我使用下面的代码调用 Broadcast serviceIntent i = new Intent(this, BootUpReceiverRecall.class);         sendBroadcast(i);  <receiver  android:process=":remote" android:name="BootUpReceiverRecall"></receiver> public class BootUpReceiverRecall extends BroadcastReceiver  {       // Restart service every 30 seconds       private static final long REPEAT_TIME = 1000 * 30;       @Override       public void onReceive(Context context, Intent intent)        {         AlarmManager service = (AlarmManager) context             .getSystemService(Context.ALARM_SERVICE);         Intent i = new Intent(context, BootUpReceiver.class);         PendingIntent pending = PendingIntent.getBroadcast(context, 0, i,             PendingIntent.FLAG_CANCEL_CURRENT);         Calendar cal = Calendar.getInstance();         // Start 30 seconds after boot completed         cal.add(Calendar.SECOND, 30);         //         // Fetch every 30 seconds         // InexactRepeating allows Android to optimize the energy consumption         service.setInexactRepeating(AlarmManager.RTC_WAKEUP,             cal.getTimeInMillis(), REPEAT_TIME, pending);         // service.setRepeating(AlarmManager.RTC_WAKEUP, cal.getTimeInMillis(),         // REPEAT_TIME, pending);       }但是我的BootUpReceiver 从来没有被调用,哪里出错了呢?
查看完整描述

1 回答

?
holdtom

TA贡献1805条经验 获得超10个赞

Intent i = new Intent(this, BootUpReceiverRecall.class);
        sendBroadcast(i);

为什么要这样写呢? 我是没这样写过
广播分2中注册方式:
1中是代码注册,局部广播 可以写在Activity中

YourReceiver reveiver = new YourReceiver ();
IntentFilter filter = new IntentFilter();
        filter.addAction("yourAction");
        registerReceiver(reveiver , filter);

Activity生命周期中可以管理register 和 unregister
2.manifest配置 节点下 
创建 YourReceiver在xx.xx.xx.receiver(随便写)包下 extends BrocastReceiver
根据action过滤

你这个可改成

Intent i = new Intent(“action”);
        sendBroadcast(i);


查看完整回答
反对 回复 2019-04-29
  • 1 回答
  • 0 关注
  • 428 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信