Я настраиваю ежедневную тревогу. Он работает, если приложение работает во время тревоги, но не работает, если приложение не запущено. Это, как я объявляю приемник в манифесте:Тревога не запускается, когда приложение не работает
<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 не всегда работает ... что является самым загадочным !!! :-(
вы пытались что происходит, когда вы добавляете configureDailySync() в класс приложения? –