2016-10-04 5 views
-2

Я настраиваю ежедневную тревогу. Он работает, если приложение работает во время тревоги, но не работает, если приложение не запущено. Это, как я объявляю приемник в манифесте:Тревога не запускается, когда приложение не работает

<receiver android:name="com.myAppPackage.alarm.AlarmReceiver" 
     android:enabled="true" 
     android:exported="true"/> 

Студия предупреждает меня: вывезенный приемник не требует разрешений.

Правда я не добавил андроида: разрешения ни и Intent к приемнику и приложение секция не имеет никакого разрешения тегов.

И это BroadcastReceiver:

package com.myAppPackage.alarm; 

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

    import static android.content.Intent.FLAG_ACTIVITY_NEW_TASK; 

    public class AlarmReceiver extends BroadcastReceiver { 

    public AlarmReceiver(){} 

    @Override 
    public void onReceive(Context context, Intent intent) { 

     final Intent syncIntent = new Intent(context, AlarmActivity.class); 

     syncIntent.addFlags(FLAG_ACTIVITY_NEW_TASK); 

     context.startActivity(syncIntent); 

    } 
} 

Аварийный сигнал сконфигурирован следующим способом (в данном примере, выполненный с возможностью установки выключения ежедневно неточны в 13:48):

public static void configureDailySync(Context context) { 

    AlarmManager alarmManager = (AlarmManager) context.getSystemService(Context.ALARM_SERVICE); 

    Intent alarmIntent = new Intent(context, AlarmReceiver.class); 

    PendingIntent alarmPendingIntent = PendingIntent.getBroadcast(context, 0, alarmIntent, 0); 

    Calendar calendar = Calendar.getInstance(); 
    calendar.setTimeInMillis(System.currentTimeMillis()); 

    final int hourOfDay = 13; 
    final int minuteOfHour = 48; 

    calendar.set(Calendar.HOUR_OF_DAY, hourOfDay); 
    calendar.set(Calendar.MINUTE, minuteOfHour); 

    alarmManager.setInexactRepeating(
      AlarmManager.RTC_WAKEUP, 
      calendar.getTimeInMillis(), 
      AlarmManager.INTERVAL_DAY, 
      alarmPendingIntent); 
} 

Любой помощь очень приветствуется! Спасибо!!

новости: приближайтесь ... если я скопирую код настройки будильника в методе MainActivity onCreate(), он работает! Это код, который я скопировал:

AlarmManager alarmManager = (AlarmManager) getSystemService(Context.ALARM_SERVICE); 

    Intent alarmIntent = new Intent(this, AlarmReceiver.class); 

    PendingIntent alarmPendingIntent = PendingIntent.getBroadcast(this, 0, alarmIntent, 0); 

    Calendar calendar = Calendar.getInstance(); 
    calendar.setTimeInMillis(System.currentTimeMillis()); 

    final int hourOfDay = 13; 
    final int minuteOfHour = 48; 

    calendar.set(Calendar.HOUR_OF_DAY, hourOfDay); 
    calendar.set(Calendar.MINUTE, minuteOfHour); 

    alarmManager.setInexactRepeating(
      AlarmManager.RTC_WAKEUP, 
      calendar.getTimeInMillis(), 
      AlarmManager.INTERVAL_DAY, 
      alarmPendingIntent); 

Когда тревога создается, как указано выше в OnCreate() из MainActivity то она вызовет, даже если приложение закрыто ... Но когда я звоню вызов в метод от MainActivity:

MyAppAccount.configureDailySync(this); 

не работает! MyAppAccount - это простой класс, который не распространяется ни на что ... Я попытался расширить приложение MyAppAccount на AppCompatActivity в случае, если это имеет значение, но ничего ... Ой хорошо ... кажется, что вышеприведенная попытка выполнить настройку будильника в onCreate() метод MainActivity не всегда работает ... что является самым загадочным !!! :-(

+0

вы пытались что происходит, когда вы добавляете configureDailySync() в класс приложения? –

ответ

1

SOLVED: Это не имеет никакого отношения к кодированию. Проблема заключалась в том, что я закрывал приложение. При закрытии приложения с помощью кнопки остановки Android Studio аварийный сигнал НЕ установлен. При закрытии приложения с телефона, используя кнопку назад для экземпляра и/или удаления приложения из списка приложений (кнопка квадрат), то сигнализация работает!

Почему? Не знаю ...

+0

5-часовой поиск. THX MAN –

Смежные вопросы