2

Можете ли вы указать, почему BroadcastReceiver не вызывается, когда будильник отключается? Если у меня есть запуск будильника с явным намерением, он работает отлично, и моя деятельность открывается. Если я установлю намерение открыть свой BroadCastReceiver, тогда ничего не произойдет, поэтому я думаю, что может быть что-то не так с моим классом получателя или манифеста. Вот как я установка сигнализации:BroadcastReceiver, не вызываемый аварийным сигналом (диспетчер)

Intent intent = new Intent(this, AlarmBroadcastReceiver.class); 
PendingIntent pendingIntent = PendingIntent.getActivity(this, 324, intent, PendingIntent.FLAG_UPDATE_CURRENT); 
mAlarmManager = (AlarmManager) getSystemService(ALARM_SERVICE); 
mAlarmManager.set`enter code here`InexactRepeating(AlarmManager.RTC_WAKEUP, calendar.getTimeInMillis(), AlarmManager.INTERVAL_DAY, pendingIntent); 

Вот мой радиовещательный приемник:

public class AlarmBroadcastReceiver extends BroadcastReceiver { 

    @Override 
    public void onReceive(Context context, Intent intent) { 
     Log.e("MJH", "Alarm called..."); 
     Toast.makeText(context, "Alarm...", Toast.LENGTH_LONG).show(); 
    } 
} 

И вот мой манифест:

<?xml version="1.0" encoding="utf-8"?> 
<manifest package="mjh.com.apod" 
     xmlns:android="http://schemas.android.com/apk/res/android"> 

<!-- Required to act as a custom watch face. --> 
<uses-permission android:name="android.permission.WAKE_LOCK"/> 
<uses-permission android:name="android.permission.SET_WALLPAPER"/> 
<uses-permission android:name="android.permission.INTERNET"/> 
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE"/> 

<application 
    android:name="android.support.multidex.MultiDexApplication" 
    android:allowBackup="true" 
    android:icon="@mipmap/ic_launcher" 
    android:label="@string/app_name" 
    android:supportsRtl="true" 
    android:theme="@style/AppTheme"> 
    <activity android:name=".MainActivity"> 
     <intent-filter> 
      <action android:name="android.intent.action.MAIN"/> 

      <category android:name="android.intent.category.LAUNCHER"/> 
     </intent-filter> 
    </activity> 
    <receiver 
     android:name=".AlarmBroadcastReceiver" 
     android:enabled="true" 
     android:exported="true" 
     android:process=":remote"> 
    </receiver> 
</application> 

Спасибо большое за ваш время.

ответ

2

Я думаю, вы должны использовать PendingIntent.getBroadcast( вместо PendingIntent.getActivity(.

+0

Да. Это сделал трюк. Спасибо! – MarkInTheDark

+0

Я помню, как давно отлаживалась очень похожая проблема. После этого он придерживается. >.> – EpicPandaForce

0

Мне нужно было вызвать getBroadcast, а не getActivity, чтобы создать PendingIntent. Это исправило это.

+0

Неправильный комментарий был здесь. – MarkInTheDark