android - onReceive 方法没有被调用

标签 android broadcastreceiver

public class BroadcastTest extends Activity {
BroadcastReceiver receiver;

/** Called when the activity is first created. */

@Override
public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.main);
    try{
    receiver=new Receiver(this);
    registerReceiver(receiver,new IntentFilter(Intent.ACTION_CALL_BUTTON));
    }catch(Exception e){
        Log.d("error",e.getMessage());
    }
  }
}

和另一个类

public class Receiver extends BroadcastReceiver{
public Receiver(BroadcastTest broadcastTest) {
    // TODO Auto-generated constructor stub
}

@Override
public void onReceive(Context arg0, Intent arg1) {
    // TODO Auto-generated method stub
    Log.d("Fired","Hi");
}
}

当我按下调用按钮时,接收器类的 onReceive 方法应该被调用吗?如果是,那么它没有接到电话。我在这里做错了什么。我在按下调用按钮时没有在 logcat 中看到任何东西。在此先感谢

最佳答案

Blog post描述了 AlarmManager 和 BroadcastReceiver 的一些常见陷阱。包括示例!希望对您有所帮助。

编辑: 一些常见的陷阱:

  1. 接收器未在 AndroidManifest.xml 中声明

    在 list 文件中声明接收者:

    <receiver android:name="net.fusonic.testapp.receivers.TestAlarmReceiver"></receiver>
    
  2. Manifest xml 中的 Receiver 拼写错误

    永远记住,整个 Android 系统都是区分大小写的。因此,请检查您在 AndroidMainfest.xml 中的拼写是否正确。请记住,如果您使用像“.receivers.TestAlarmReceiver”这样的缩写形式,eclipse 重构函数不会正确更改包名。

  3. 缺少 PendingIntent 请求代码?

    如果您为 Receiver 创建了一个 PendingIntent,请添加一个 requestCode – 即使它是一个随机数!没有你的“onReceive”代码永远不会被调用!

  4. AVD 长时间运行(非常棘手)

    请注意使用 AVD,尤其是当您使用“REALTIME_WAKEUP”和 SystemClock 时……因此,如果您尝试测试闹钟,请重新启动 AVD 或在真实设备上进行测试!

关于android - onReceive 方法没有被调用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6040438/

相关文章:

未捕获 Android 引荐来源参数

android - 动态更新android应用程序 Activity 之间的数据

android - 无法在我的监听器和广播接收器中涉及接口(interface)方法空对象引用

android - 当包含 TextView 具有波纹或选择器并被单击时,PopupWindow 高程变得扭曲/变暗

android - 如何定位屏幕左侧的标签?

android - Network Changed Broadcast Receiver 在一加手机中不执行

安卓奥利奥-GCM

javascript - 在phonegap中上传文件后重定向

android - 在 ListView 中跳过一行

android - Flutter TextField 和 TextFormField 在使用初始值或 Controller 设置初始文本时重复文本