powered by simpleCommunicator - 2.0.56     © 2025 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Android [игнор отключен] [закрыт для гостей] / AlarmManager API 23+
34 сообщений из 34, показаны все 2 страниц
AlarmManager API 23+
    #39422753
Dmitry Sukhovilin
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Сталкнулся с пролемой при работе приложения, которе использует AlarmManager в Android 6.0.
Проблема заключется в том, что AlarmManager перестал посылать PendingIntent в установленное время.
В качестве получателя использовал BroadcastReceiver, WakefulBroadcastReceiver, Service.
Установку производил всеми имеющимися у AlarmManagera методами.
setExactAndAllowWhileIdle, setAndAllowWhileIdle, setRepeating и т.д. Установка осуществлялась из приложения и из сервиса.
результат один и тот же - приемник не получает уведомление.
Доки по Doze mode прочитаны, stackoverflow изучен.
Может кто то знает как победить 6-й андроид?
Спасибо!!!
...
Рейтинг: 0 / 0
AlarmManager API 23+
    #39422850
Фотография wadman
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
...
Рейтинг: 0 / 0
AlarmManager API 23+
    #39422916
Dmitry Sukhovilin
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
wadman https://developer.android.com/reference/android/app/AlarmManager.html#setAlarmClock(android.app.AlarmManager.AlarmClockInfo, android.app.PendingIntent) тоже не работает?
Не работает.
...
Рейтинг: 0 / 0
AlarmManager API 23+
    #39422938
Dmitry Sukhovilin
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Есть подозрение, что после ухода в режим Doze система убивает приложение. И PendingIntnet'у приходить не куда. Даже если он и пытается.
...
Рейтинг: 0 / 0
AlarmManager API 23+
    #39422983
Dmitry Sukhovilin
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Если приложение не сворачивать (нажать Home), то все работает как следует. Но если свернуть события от АлармМанагера не доходят.
...
Рейтинг: 0 / 0
AlarmManager API 23+
    #39422994
Фотография wadman
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Dmitry SukhovilinЕсть подозрение, что после ухода в режим Doze система убивает приложение.
Скорее всего так и есть. Там имеется возможность добавлять приложение в исключения?
...
Рейтинг: 0 / 0
AlarmManager API 23+
    #39423018
Dmitry Sukhovilin
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
wadmanDmitry SukhovilinЕсть подозрение, что после ухода в режим Doze система убивает приложение.
Скорее всего так и есть. Там имеется возможность добавлять приложение в исключения?
Есть, но это не правильный путь. Заставлять пользователя ходить в настройки батареи, что-бы устанавливать галочку - не беречь батарею :)
...
Рейтинг: 0 / 0
AlarmManager API 23+
    #39423035
Фотография wadman
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Dmitry Sukhovilinwadmanпропущено...

Скорее всего так и есть. Там имеется возможность добавлять приложение в исключения?
Есть, но это не правильный путь. Заставлять пользователя ходить в настройки батареи, что-бы устанавливать галочку - не беречь батарею :)
Этот путь навязан самой ОС в целях экономии батарейки.
Если пользователю нужно, чтоб программа работала фоном, то он добавляет её в исключения.
Либо рутом переносит приложение с систему и тогда оно становится "не убиваемым".
...
Рейтинг: 0 / 0
AlarmManager API 23+
    #39423097
Dmitry Sukhovilin
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
wadman,

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
03-20 12:34:42.059 1109-1109/? I/xuelb: Recents removeAllTasks task:Task (8962): myapp [com.android.systemui.recents.model.Task@8fc8caf], packageName:myapp, isLocked:false
03-20 12:34:42.137 975-2771/? I/ActivityManager: Killing 29358:myapp/u0a97 (adj 9): remove task
03-20 12:34:42.253 975-1604/? I/WindowState: WIN DEATH: Window{ed062c1 u0 myapp/myapp.MainActivity}
03-20 12:34:42.279 975-1676/? I/ActivityManager: Force stopping myapp appid=10097 user=0: from pid 1109
03-20 12:34:42.279 975-1676/? D/ActivityManager: SVC-handleAppDiedLocked: app = ProcessRecord{1c80011 29358:myapp/u0a97}, app.pid = 29358
03-20 12:34:42.283 975-1676/? V/ActivityManager: Broadcast: Intent { act=android.intent.action.PACKAGE_RESTARTED dat=package:myapp flg=0x10 (has extras) } ordered=false userid=0 callerApp=null
03-20 12:34:42.290 975-986/? W/ActivityManager: Spurious death for ProcessRecord{1c80011 0:myapp/u0a97}, curProc for 29358: null


Установил не беречь батарею для приложения галочку.
Я так понимаю из логов, что аларм сработал. Но приложение уже было убито Активити Манагером. Это логи с телефона, не с эмулятора.
...
Рейтинг: 0 / 0
AlarmManager API 23+
    #39423145
Фотография wadman
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
http://apprize.info/google/asynchronous/7.html тут пишут, что нужно делать в зависимости от версии апи.
...
Рейтинг: 0 / 0
AlarmManager API 23+
    #39423209
Dmitry Sukhovilin
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
wadman http://apprize.info/google/asynchronous/7.html тут пишут, что нужно делать в зависимости от версии апи.
Читал уже. Там ценные советы только до 23 версии.
После
Код: plaintext
1.
I/ActivityManager:   Force stopping service <service name>
Ничего уже не помогает. В случае с setAlarmClock исчезает значок будильника из трея.
...
Рейтинг: 0 / 0
AlarmManager API 23+
    #39423225
Фотография wadman
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ну я (почти) точно знаю, что поможет :) таргет изменить на 19 или меньше, тогда оно будет работать в режиме совместимости.
...
Рейтинг: 0 / 0
AlarmManager API 23+
    #39423244
Dmitry Sukhovilin
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
wadmanНу я (почти) точно знаю, что поможет :) таргет изменить на 19 или меньше, тогда оно будет работать в режиме совместимости.
Это самое первое, что попробовал.
Код: xml
1.
2.
3.
4.
<uses-sdk
        android:maxSdkVersion="19"
        android:minSdkVersion="15"
        android:targetSdkVersion="19"/>
...
Рейтинг: 0 / 0
AlarmManager API 23+
    #39423266
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Dmitry SukhovilinЯ так понимаю из логов, что аларм сработал. Но приложение уже было убито Активити Манагером.
оно всегда моет быть убито Осью.
Подымай по будильнику опять если надо.
В чём проблема?
...
Рейтинг: 0 / 0
AlarmManager API 23+
    #39423269
Dmitry Sukhovilin
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Petro123Dmitry SukhovilinЯ так понимаю из логов, что аларм сработал. Но приложение уже было убито Активити Манагером.
оно всегда моет быть убито Осью.
Подымай по будильнику опять если надо.
В чём проблема?
Дык не поднимается.
...
Рейтинг: 0 / 0
AlarmManager API 23+
    #39423286
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Dmitry SukhovilinДык не поднимается.
кто и что не подымается)) LOL
Андроид по интенту не подымает активити ни разу не запущенного приложения? (перегрузили).
Не верю.
...
Рейтинг: 0 / 0
AlarmManager API 23+
    #39423495
Dmitry Sukhovilin
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Полный пример. Форма с 2-мя кнопками. 1-я заводит будильник на 30 сек. 2-я показывает, что находится в шаред преференс. будильник делает запись в шаред префреренс - что-бы было видно сработал или нет.
Если форму не закрывать работает. Если свернуть - будильник пропадает. (Время в шаред преференс не обновляется).


MainActivity.java
Код: java
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
39.
public class MainActivity extends AppCompatActivity implements View.OnClickListener {

    Button btnStart;
    Button btnGet;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);

        btnStart = (Button) findViewById(R.id.btn_start);
        btnStart.setOnClickListener(this);
        btnGet = (Button) findViewById(R.id.btn_get);
        btnGet.setOnClickListener(this);
    }

    @Override
    public void onClick(View v) {
        if (v == btnStart) {
            System.out.println("start");
            Intent intent = new Intent(
                    this, MyReceiver.class
            );
            PendingIntent pi = PendingIntent.getBroadcast(this, 1, intent, PendingIntent.FLAG_UPDATE_CURRENT);
            AlarmManager am = (AlarmManager) getSystemService(Context.ALARM_SERVICE);
            am.setAndAllowWhileIdle(AlarmManager.RTC_WAKEUP,
                    System.currentTimeMillis() + TimeUnit.SECONDS.toMillis(30), pi);
        }
        if (v == btnGet) {
            System.out.println("get");
            SharedPreferences demo = getSharedPreferences("demo", MODE_PRIVATE);
            String time = demo.getString("time", "?");
            setTitle(time + " " + new Date().getTime());

        }

    }

}



MyReceiver.java
Код: java
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
public class MyReceiver extends BroadcastReceiver {
    @Override
    public void onReceive(Context context, Intent intent) {
        System.out.println("demo");
        SharedPreferences p = context.getSharedPreferences("demo", Context.MODE_PRIVATE);
        SharedPreferences.Editor editor = p.edit();
        editor.putString("time", new Date().getTime()+"");
        editor.commit();
    }
}



Форма
Код: xml
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout
    xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:orientation="vertical"
    android:layout_height="match_parent"
    tools:context="com.example.dmitres.myapplication.MainActivity">

    <Button
        android:id="@+id/btn_start"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="start"/>

    <Button
        android:id="@+id/btn_get"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="get"/>

</LinearLayout>




Манифест
Код: xml
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
          package="com.example.dmitres.myapplication">

    <uses-permission android:name="android.permission.RECEIVE_BOOT_COMPLETED"/>

    <application
        android:allowBackup="true"
        android:icon="@mipmap/ic_launcher"
        android:label="@string/app_name"
        android:roundIcon="@mipmap/ic_launcher_round"
        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=".MyReceiver"
            android:enabled="true"
            android:exported="true">
            <intent-filter>
                <action android:name="android.intent.action.BOOT_COMPLETED"/>
            </intent-filter>
        </receiver>

    </application>

</manifest>

...
Рейтинг: 0 / 0
AlarmManager API 23+
    #39423545
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Dmitry SukhovilinЕсли свернуть - будильник пропадает.
где логи?
2. В ресивер пропиши
context.startService(new Intent(context, MyService.class));
...
Рейтинг: 0 / 0
AlarmManager API 23+
    #39423549
Dmitry Sukhovilin
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Petro123,

Ресивер НЕ получает вызов onReceive().
В onReceive() происходит запись в ShardPreferences это и есть индикатор того, что onReceive() был вызван.
Логи Андроид Монитор http://www.sql.ru/forum/actualutils.aspx?action=gotomsg&tid=1253973&msg=20313491
...
Рейтинг: 0 / 0
AlarmManager API 23+
    #39423566
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Dmitry SukhovilinРесивер НЕ получает вызов onReceive().
В onReceive() происходит запись в ShardPreferences это и есть индикатор того, что onReceive() был вызван.
ничего не понял.
Дак событие приходит или нет если поставить все настройки против doze?
Ещё раз:
- написал приложение
- поставил будильник на 6 утра
- ПЕРЕГРУЗИЛ т.е. приложения в памяти нету
- в 6 утра должен запуск активити на экран Доброе утро!
..........
В чём проблема?
...
Рейтинг: 0 / 0
AlarmManager API 23+
    #39423594
Dmitry Sukhovilin
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Petro123Dmitry SukhovilinРесивер НЕ получает вызов onReceive().
В onReceive() происходит запись в ShardPreferences это и есть индикатор того, что onReceive() был вызван.
ничего не понял.
Дак событие приходит или нет если поставить все настройки против doze?
Ещё раз:
- написал приложение
- поставил будильник на 6 утра
- ПЕРЕГРУЗИЛ т.е. приложения в памяти нету
- в 6 утра должен запуск активити на экран Доброе утро!
..........
В чём проблема?
Если приложение свернуть, то AlarmManager не вызывает привязанный к нему PendingIntent. Т.е. ничего не происходит. Нет вызова. Никак. Совсем нет.
Если приложение оставить запущенным и усыпить телефон - все работает. На зарядке стоит все работает.
Нажать Home и после этого усыпить - не работает.
...
Рейтинг: 0 / 0
AlarmManager API 23+
    #39423595
Dmitry Sukhovilin
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
И не важно, как именно был сделан вызов - Service, BroadcastReceiver, тупо из Activity.
Перебрал все возможные варианты.
Или так сделать ваще нельзя в 6.0 или что-то я не так делаю. Вот на этот вопрос я и не могу найти ответ.
...
Рейтинг: 0 / 0
AlarmManager API 23+
    #39423611
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Dmitry SukhovilinЕсли приложение свернуть, то AlarmManager не вызывает привязанный к нему PendingIntent.
в 20-ый раз.
Будильник должен работать с сервисом который нельзя свернуть.
И проблемы твоей не будет.
Активити это - ГУИ. Андроид знает что если ГУИ нет, то и будильник не нужен.
...
Рейтинг: 0 / 0
AlarmManager API 23+
    #39423650
Dmitry Sukhovilin
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Petro123,

Да пробовал уже. Добавим сервис и ресивер.
Работает так:
MainReceiver запускает AlarmService в котором AlarmManager через 30 сек посылает вызов в NotifReceiver. NotifReceiver Делает пометку в SharedPreferences (timestamp) о том, что сообщение прибыло.

UI нужен только для того, что бы посмотреть в SharedPreferences обновился ли timestamp.
Весь код ниже.

Код: xml
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
          package="com.example.dmitres.myapplication">
    <uses-permission android:name="android.permission.RECEIVE_BOOT_COMPLETED"/>
    <application
        android:allowBackup="true"
        android:icon="@mipmap/ic_launcher"
        android:label="@string/app_name"
        android:roundIcon="@mipmap/ic_launcher_round"
        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=".MainReceiver"
            android:enabled="true"
            android:exported="true">
            <intent-filter>
                <action android:name="android.intent.action.BOOT_COMPLETED"/>
            </intent-filter>
        </receiver>
        <receiver
            android:name=".NotifReceiver"
            android:enabled="true"
            android:exported="true" />
        <service
            android:name=".AlarmService"
            android:enabled="true"
            android:exported="true"/>
    </application>
</manifest>



Код: java
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
public class AlarmService extends Service {
    @Nullable
    @Override
    public IBinder onBind(Intent intent) {
        return null;
    }
    @Override
    public int onStartCommand(Intent intent, int flags, int startId) {
        System.out.println("start command");
        PendingIntent pi = PendingIntent.getBroadcast(getApplicationContext(), 1,
                new Intent(getApplicationContext(), NotifReceiver.class), PendingIntent.FLAG_UPDATE_CURRENT);
        AlarmManager am = (AlarmManager) getApplicationContext().getSystemService(Context.ALARM_SERVICE);
        am.setAndAllowWhileIdle(AlarmManager.RTC_WAKEUP,
                System.currentTimeMillis() + TimeUnit.SECONDS.toMillis(30), pi);
        return START_STICKY;
    }
}



Код: java
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
public class NotifReceiver extends WakefulBroadcastReceiver {
    @Override
    public void onReceive(Context context, Intent intent) {
        System.out.println("got alarm call!");
        SharedPreferences p = context.getSharedPreferences("demo", Context.MODE_PRIVATE);
        SharedPreferences.Editor editor = p.edit();
        editor.putString("time", System.currentTimeMillis() + "");
        editor.commit();
    }
}



Код: java
1.
2.
3.
4.
5.
6.
7.
public class MainReceiver extends WakefulBroadcastReceiver {
    @Override
    public void onReceive(Context context, Intent intent) {
        System.out.println("main receiver");
        context.startService(new Intent(context, AlarmService.class));
    }
}



Код: java
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
39.
40.
41.
42.
public class MainActivity extends AppCompatActivity implements View.OnClickListener {

    Button btnStart;
    Button btnGet;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);

        btnStart = (Button) findViewById(R.id.btn_start);
        btnStart.setOnClickListener(this);
        btnGet = (Button) findViewById(R.id.btn_get);
        btnGet.setOnClickListener(this);
    }

    @Override
    public void onClick(View v) {
        if (v == btnStart) {
            System.out.println("start");
            Intent intent = new Intent(
                    this, MainReceiver.class);
            PendingIntent pi = PendingIntent.getBroadcast(this, 1, intent, PendingIntent.FLAG_UPDATE_CURRENT);
            try {
                pi.send();
            } catch (PendingIntent.CanceledException e) {
                e.printStackTrace();
            }
        }
        if (v == btnGet) {
            System.out.println("get");
            SharedPreferences demo = getSharedPreferences("demo", MODE_PRIVATE);
            String time = demo.getString("time", "?");
            setTitle(time + " " + new Date().getTime());

        }


    }


}

...
Рейтинг: 0 / 0
AlarmManager API 23+
    #39423661
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Dmitry Sukhovilin,

Задача: запускать ежедневно в конце дня сервис, который собирает статистику и записывает ее в БД. Реализую, используя AlarmManager. Код активити:
http://www.cyberforum.ru/android-dev/thread1881826.html
Работает у мужика?
...
Рейтинг: 0 / 0
AlarmManager API 23+
    #39423665
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
т.е. на эмуляторе до 6ки с doze должно работать.
Потом мучаешь 6-ку с doze и повышением приоритета сервиса до максимального.
...
Рейтинг: 0 / 0
AlarmManager API 23+
    #39423886
Dmitry Sukhovilin
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Petro123Dmitry Sukhovilin,

Задача: запускать ежедневно в конце дня сервис, который собирает статистику и записывает ее в БД. Реализую, используя AlarmManager. Код активити:
http://www.cyberforum.ru/android-dev/thread1881826.html
Работает у мужика?
У него проблема с чтением док была. TRC не поставил. Это работает на версиях до Android 6.0 API 23.
На API < 23 и у меня все работает хорошо.
...
Рейтинг: 0 / 0
AlarmManager API 23+
    #39423940
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Dmitry Sukhovilin,
у него нет ни слова про свернуть и развернуть.
Теперь давай его код на API 23 со свежим логом.
...
Рейтинг: 0 / 0
AlarmManager API 23+
    #39424012
Dmitry Sukhovilin
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Petro123,

Не работает это на телефоне.

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
Эмулятор
alarmManager.setRepeating(AlarmManager.RTC, calendar.getTimeInMillis(), AlarmManager.INTERVAL_DAY, pendingIntent);
3-21 12:18:10.142 2737-2737/com.example.dmitres.myapplication D/myLogs: starting alarm
03-21 12:19:10.144 2737-2737/com.example.dmitres.myapplication D/myLogs: TIME!
03-21 12:19:10.147 2737-2737/com.example.dmitres.myapplication D/myLogs: got command

Телефон. Экран включен.
alarmManager.setRepeating(AlarmManager.RTC_WAKEUP, calendar.getTimeInMillis(), AlarmManager.INTERVAL_DAY, pendingIntent);
03-21 12:24:52.753 24156-24156/com.example.dmitres.myapplication I/System.out: starting alarm

Телефон. Экран включен.
alarmManager.setAndAllowWhileIdle(AlarmManager.RTC_WAKEUP, calendar.getTimeInMillis(), pendingIntent);
03-21 12:27:50.876 26867-26867/com.example.dmitres.myapplication I/System.out: starting alarm
03-21 12:29:56.486 26867-26867/com.example.dmitres.myapplication I/System.out: TIME!
03-21 12:29:56.514 26867-26867/com.example.dmitres.myapplication I/System.out: got command

Телефон. Экран выключен. Приложение не свернуто.
alarmManager.setAndAllowWhileIdle(AlarmManager.RTC_WAKEUP, calendar.getTimeInMillis(), pendingIntent);
03-21 12:31:50.342 30463-30463/com.example.dmitres.myapplication I/System.out: starting alarm
03-21 12:32:50.353 30463-30463/com.example.dmitres.myapplication I/System.out: TIME!

Телефон. Экран выключен. Приложение свернуто.
alarmManager.setAndAllowWhileIdle(AlarmManager.RTC_WAKEUP, calendar.getTimeInMillis(), pendingIntent);
03-21 12:34:43.720 32647-32647/com.example.dmitres.myapplication I/System.out: starting alarm

Исходники прилагаются.
...
Рейтинг: 0 / 0
AlarmManager API 23+
    #39424078
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Dmitry Sukhovilin,
OK
проверю сам на API25
...
Рейтинг: 0 / 0
AlarmManager API 23+
    #39424683
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Dmitry Sukhovilin,
это пробовал?
авторВ Android 5.0 (API 21) появился новый класс JobScheduler , позволяющий выполнять различные действия по заданным критериям. Возможности нового класса мощнее и удобнее, чем использование таких классов как TimerTask, AlarmManager, SyncAdapter.
...
Рейтинг: 0 / 0
AlarmManager API 23+
    #39424694
Dmitry Sukhovilin
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Petro123Dmitry Sukhovilin,
это пробовал?
авторВ Android 5.0 (API 21) появился новый класс JobScheduler , позволяющий выполнять различные действия по заданным критериям. Возможности нового класса мощнее и удобнее, чем использование таких классов как TimerTask, AlarmManager, SyncAdapter.

Внимательно читаем доку от гугла.

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
Doze restrictions
The following restrictions apply to your apps while in Doze:

Network access is suspended.
The system ignores wake locks.
Standard AlarmManager alarms (including setExact() and setWindow()) are deferred to the next maintenance window.
If you need to set alarms that fire while in Doze, use setAndAllowWhileIdle() or setExactAndAllowWhileIdle().
Alarms set with setAlarmClock() continue to fire normally — the system exits Doze shortly before those alarms fire.
The system does not perform Wi-Fi scans.
The system does not allow sync adapters to run.
The system does not allow JobScheduler to run.

Последняя строка гласит The system does not allow JobScheduler to run.
...
Рейтинг: 0 / 0
AlarmManager API 23+
    #39424703
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Dmitry SukhovilinВнимательно читаем доку от гугла.
внимательно читаем то что я просил:
20315453
- т.е. выключить doze штатными средствами и проверить что ВСЁ работает.
- дать сюда название опций для выключения doze.
Чтобы я или кто то другой проверили у себя что причина не в твоих кривых руках, а новой версии Андро от Гугла.
...
Рейтинг: 0 / 0
AlarmManager API 23+
    #39424846
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Dmitry Sukhovilin,
не нашёл в твоём коде
Код: sql
1.
startForeground(DEFAULT_NOTIFICATION_ID, notification);


в новых андроид гугл усиленно борется с питанием устройства.
И вырубает писателей таких будильников всеми средствами.
Как полумера пробуй сервис фоновый но переднего плана
startForeground(DEFAULT_NOTIFICATION_ID, notification);
...
Рейтинг: 0 / 0
34 сообщений из 34, показаны все 2 страниц
Форумы / Android [игнор отключен] [закрыт для гостей] / AlarmManager API 23+
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]