嗨大家我在图书馆计划中创建了一个广播接收器。
下面是代码
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);
}
}
我使用以下代码使用警报管理器触发广播接收器。
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);
我在主项目的清单中定义了接收器,如下所示
<receiver android:name="com.library.packagename.AlarmReciever">
<intent-filter>
<action android:name="Alarm" />
</intent-filter>
</receiver>
但是广播接收器没有被触发。
答案 0 :(得分:0)
您是否已将Library Brodacstreceiver注册到AndroidManifest.xml文件?
确保它,如果您尚未在Library AndroidManifest.xml文件中注册接收器
<receiver name="libprojectpackagename.AlarmReceiver">
...
</receiver>
就是这样......
答案 1 :(得分:0)
如果您在未设置操作的情况下执行此操作,则会触发您的广播。
Intent intent = new Intent(activity, AlarmReceiver.class);
alarmIntent = PendingIntent.getBroadcast(activity, 0, intent, 0);
同时从清单中删除<action android:name="Alarm" />
。