简体   繁体   English

图书馆中的广播接收器不起作用

[英]Broadcast Receiver in Library Not working

Hi Guys I created a broadcast receiver in a Library Project. 嗨,大家好,我在图书馆计划中创建了一个广播接收器。

below is the code 下面是代码

import android.content.BroadcastReceiver;
import android.content.Context;
import android.content.Intent;

public class AlarmReceiver extends BroadcastReceiver {

     @Override
     public void onReceive(Context context, Intent intent) {
     // When our Alaram time is triggered , this method will be excuted (onReceive)
     // We're invoking a service in this method which shows Notification to the User
      Intent myIntent = new Intent(context, AlarmNotificationService.class);
      context.startService(myIntent);
    }

} 

I trigger the broadcast receiver using alarm manager using the below code. 我使用以下代码使用警报管理器触发广播接收器。

Intent myIntent = new Intent("Alarm");
        myIntent.setClass(activity, AlarmReceiver.class);    
PendingIntent pendingIntent = PendingIntent.getBroadcast(activity, 0, myIntent, 0);
            AlarmManager alarmManager = (AlarmManager)activity.getSystemService(activity.ALARM_SERVICE);
            long time = System.currentTimeMillis() + 10 * 1000;
            alarmManager.set(AlarmManager.RTC, time , pendingIntent); 

I defined the receiver in the main project's manifest as shown below 我在主项目清单中定义了接收方,如下所示

<receiver android:name="com.library.packagename.AlarmReciever">
    <intent-filter>
        <action android:name="Alarm" />             
    </intent-filter>
</receiver>

but the broadcast receiver is not getting triggered. 但是广播接收器没有被触发。

Have you registered your Library Brodacstreceiver to your AndroidManifest.xml file? 您是否已将Library Brodacstreceiver注册到AndroidManifest.xml文件?

Make sure of it and if you haven't registered your receiver in your Library AndroidManifest.xml file 确保已确定,如果您尚未在Library AndroidManifest.xml文件中注册接收器,

<receiver name="libprojectpackagename.AlarmReceiver">
  ...
</receiver>

that's it ... 而已 ...

If you do this without setting the action, your broadcast will fire. 如果您在未设置操作的情况下执行此操作,则广播将触发。

Intent intent = new Intent(activity, AlarmReceiver.class);
alarmIntent = PendingIntent.getBroadcast(activity, 0, intent, 0);

Also remove <action android:name="Alarm" /> from the manifest. 同时从清单中删除<action android:name="Alarm" />

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM