Android 仅当应用程序处于活动状态时,BroadcastReceiver才工作

Android 仅当应用程序处于活动状态时,BroadcastReceiver才工作,android,broadcastreceiver,alarmmanager,android-notifications,Android,Broadcastreceiver,Alarmmanager,Android Notifications,我尝试在特定时间发送通知,即使应用程序未处于活动状态 但它只在应用程序处于活动状态(打开)时起作用 立即创建 Intent notificationIntent = new Intent("android.media.action.DISPLAY_NOTIFICATION"); notificationIntent.addCategory("android.intent.category.DEFAULT"); PendingIntent broadcast = P

我尝试在特定时间发送通知,即使应用程序未处于活动状态 但它只在应用程序处于活动状态(打开)时起作用

立即创建

Intent notificationIntent = new Intent("android.media.action.DISPLAY_NOTIFICATION");
        notificationIntent.addCategory("android.intent.category.DEFAULT");
        PendingIntent broadcast = PendingIntent.getBroadcast(this, 100, notificationIntent, PendingIntent.FLAG_UPDATE_CURRENT);
        AlarmManager alarm = (AlarmManager) this.getSystemService(Context.ALARM_SERVICE);
        alarm.set(AlarmManager.RTC_WAKEUP, (System.currentTimeMillis() + (5 * 1000)), broadcast);
接收者类别:

public class AlarmReceiver extends WakefulBroadcastReceiver {
    @Override
    public void onReceive(Context context, Intent intent) {
        Intent it = new Intent(context, StartActivity.class);
        createNotification(context, it, "new mensage", "body!", "this is a mensage");

    }

    public void createNotification(Context context, Intent intent, CharSequence ticker, CharSequence title, CharSequence descricao) {
        NotificationManager nm = (NotificationManager) context.getSystemService(Context.NOTIFICATION_SERVICE);
        PendingIntent p = PendingIntent.getActivity(context, 0, intent, 0);

        NotificationCompat.Builder builder = new NotificationCompat.Builder(context);
        builder.setTicker(ticker);
        builder.setContentTitle(title);
        builder.setContentText(descricao);
        builder.setSmallIcon(R.drawable.icon);
        builder.setContentIntent(p);
        Notification n = builder.build();
        //create the notification
        n.vibrate = new long[]{150, 300, 150, 400};
        n.flags = Notification.FLAG_AUTO_CANCEL;
        nm.notify(R.drawable.icon, n);
        //create a vibration
        try {

            Uri som = RingtoneManager.getDefaultUri(RingtoneManager.TYPE_NOTIFICATION);
            Ringtone toque = RingtoneManager.getRingtone(context, som);
            toque.play();
        } catch (Exception e) {
        }
    }
}
androidmanifest:

 <receiver android:name="com.example.atefhares.study_organizer.notifications_related.AlarmReceiver"
                android:enabled="true">
          <intent-filter>
                    <action android:name="android.media.action.DISPLAY_NOTIFICATION" />
                    <category android:name="android.intent.category.DEFAULT" />
         </intent-filter>
</receiver>


任何人都知道如何解决这个问题,请???

在哪里定义了可变报警?在使用线上方如果从内存中删除活动后它处于活动级别,则报警管理器也会发生同样的情况如果活动不在内存中,则有什么解决方案可以使其工作?在哪里定义了可变报警?在使用线上方如果活动删除后它处于活动级别从内存中删除AlarmManager也会发生同样的情况。如果活动不在内存中,是否有任何解决方案使其工作?