2 znl 12 znl_12 于 2013.06.06 15:40 提问

Broadcast service 没有被调用

我使用下面的代码调用 Broadcast service

Intent 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 从来没有被调用,哪里出错了呢?

2个回答

cj6585256
cj6585256   2013.06.06 16:00
已采纳
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);
curie_87
curie_87   2013.06.06 17:07

要在 AndroidManifest.xml 中定义:

<receiver 
android:process=":remote"
android:name=".BootUpReceiverRecall" />

还要查看 "android:name" tag。
如果在程序的同一个包中的话,要在 "BootUpReceiverRecall" 前面添加一个"."。但是不能这样使用 "app.package.receivers.BootUpReceiverRecall".

Csdn user default icon
上传中...
上传图片
插入图片
准确详细的回答,更有利于被提问者采纳,从而获得C币。复制、灌水、广告等回答会被删除,是时候展现真正的技术了!
其他相关推荐
Broadcast与service----------通过广播启动服务
BroadcastReceiverd的流程:注册、发送广播。       Service的流程:注册、启动、停止。       上一篇已经讲了,注册广播有两种方式,静态的和动态的。今天我用动态的方式注册一个广播,通过广播来启动服务。 大致过程为:定义三个按钮:发送、取消、退出。点击发送按钮时,注册广播、在广播的onReceive()方法中启动服务。 点击取消,停止服务。点击退出,停止服务退
Android Service BroadcastReceiver 合用 应用全局随便启动activity
最近公司增添新的需求,不论在应用的哪个页面都可以弹出一个界面来,今天参考着其他博客,写了一个demo并记录在此。首先,创建一个首页的页面。<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools" andr
BroadcastReceiver onReceive()没有被调用
代码个功能是在activity中启动service,在service中获取相关数据后广播给activity,activity刷新界面,但是activity中的onReceive怎么也不执行。 说明:使用的是动态注册 这个是activity代码: package com.jade.hust; import java.util.ArrayList; import java.util.
android 服务的onStartCommand()不执行的解决办法
弄了一下午了,一直无法启动Service服务,刚刚忽然解决了这个问题,给大家分享一下. 我是通过Service启动了一个广播,BroadcastReceiver.然后通过这个广播来启动Service.需要先去AndroidManifest.xml中注册服务和BroadcastReceiver. 注册服务的代码如下: 然后在BroadcastReceiver中写入下面的代
Android Broadcast 怎么不被其他应用接收
最近在面试的时候遇到一个问题,怎么让你app内发出的广播不被其他应用接收。这个以前确实没有遇到过,BroadcastReceiver设计初衷就是从全局考虑的,可以方便应用程序和系统、应用程序之间、应用程序内的通信。但是有时候又需要从安全性考虑,方法肯定是有的 在网上查了总结下: 1,在静态注册广播 在manifest文件里面添加自定义权限 permission; 比如: <manifest
startService,bindServie混用之onDestroy不被调用的处理方法
startService bindServie混用 之onDestroy不被调用的处理方法
Android~Service+BroadcastReceiver使用
Android~Service+BroadcastReceiver使用
broadcast功能大集合
broadcast; 通过broadcast开机启动service; sendorderedbroadcast; broadcast生命周期; 权限控制启动;
Service的onServiceConnected没有被调用
转:http://blog.csdn.net/shaojie519/article/details/6641066 Service是一种运行在后台的服务,一般很少与用户交互,所以没有可视化界面。 我们可以通过startService() 或者使用bindService()方法来绑定一个存在的service。 bindService是异步调用和Service进行绑定, 如果绑定
BroadcastReceiver的onReceive不执行
package net.zx; import android.app.Activity; import android.content.Intent; import android.content.IntentFilter; import android.os.Bundle; import android.view.Menu; import android.view.MenuItem; impo