Урок 119. PendingIntent – флаги, requestCode. AlarmManager

Обсуждение уроков
mercuriy94
Сообщения: 16
Зарегистрирован: 02 апр 2013, 22:44

Re: Урок 119. PendingIntent – флаги, requestCode. AlarmManag

Сообщение mercuriy94 » 25 авг 2015, 23:40

Всем привет, может вопрос не по теме. Но я не нашёл темы , где могу его задать, а данная тема более менее подходит по теме. Итак.
Каким способом можно добавить будильники в системное приложение будильника?Как программно менять звук системного будильника?

Аватара пользователя
doter.ua
Сообщения: 1106
Зарегистрирован: 23 ноя 2013, 16:08
Откуда: Ukraine

Re: Урок 119. PendingIntent – флаги, requestCode. AlarmManag

Сообщение doter.ua » 26 авг 2015, 02:27

В одной строке 4 слова "тема", однако здравствуйте. Насколько я знаю такие приложения на разных девайсах могут отличаться http://stackoverflow.com/a/4281243. Лучше напиши свой.
Семь раз отмерь - поставь студию.
Эклипс не студия, ошибка вылетит - не исправишь.
Скажи мне кто твой друг, и оба поставили студию.
Студия - свет, а эклипс - тьма.

mercuriy94
Сообщения: 16
Зарегистрирован: 02 апр 2013, 22:44

Re: Урок 119. PendingIntent – флаги, requestCode. AlarmManag

Сообщение mercuriy94 » 26 авг 2015, 11:33

doter.ua писал(а):В одной строке 4 слова "тема", однако здравствуйте. Насколько я знаю такие приложения на разных девайсах могут отличаться http://stackoverflow.com/a/4281243. Лучше напиши свой.
Ночью писал) не заметил) по вашему ответу) пример приведённый по ссылке запускает intent будильника , а не добавляет новый будильник ) Ну может и правда лучше свой написать)

mercuriy94
Сообщения: 16
Зарегистрирован: 02 апр 2013, 22:44

Re: Урок 119. PendingIntent – флаги, requestCode. AlarmManag

Сообщение mercuriy94 » 26 авг 2015, 19:17

В общем если кому то интересно решение моего вопроса то я разобрался. Ниже приведён кусок кода , который ставит будильник на 22:00.

Код: Выделить всё

Integer hour = 22;
        Integer minute = 00;
        Intent NewAlarm = new Intent(AlarmClock.ACTION_SET_ALARM);
       NewAlarm.putExtra(AlarmClock.EXTRA_HOUR, hour);
        NewAlarm.putExtra(AlarmClock.EXTRA_MINUTES, minute);
        NewAlarm.putExtra(AlarmClock.EXTRA_SKIP_UI, true);
        startActivity(NewAlarm);
Теперь следующая задача как программно получить информацию о включенных будильниках и как программно удалить какой либо будильник?

Аватара пользователя
An-droid
Сообщения: 51
Зарегистрирован: 25 авг 2015, 10:54

Re: Урок 119. PendingIntent – флаги, requestCode. AlarmManag

Сообщение An-droid » 28 авг 2015, 11:21

Добрый день. Урок 119 становится делать сложнее, потому что метод

Код: Выделить всё

 void sendNotif(int id, PendingIntent pIntent) {
    Notification notif = new Notification(R.drawable.ic_launcher, "Notif "
        + id, System.currentTimeMillis());
    notif.flags |= Notification.FLAG_AUTO_CANCEL;
    notif.setLatestEventInfo(this, "Title " + id, "Content " + id, pIntent);
    nm.notify(id, notif);
  }
отказывается работать - setLatestEventInfo не просто зачёркивает (устаревший), а вообще выделяет красным.

В связи с чем переписал данный метод так:

Код: Выделить всё

 void sendNotif(int id, PendingIntent pIntent) {
    Notification notification = new Notification.Builder(getApplicationContext())
                .setContentTitle("Title " + id)
                .setContentText("Content " + id)
                .setSmallIcon(R.mipmap.ic_launcher)
                .setAutoCancel(true)
                .setContentIntent(pIntent)
                .getNotification();

        notificationManager.notify(id, notification);
  }
Возможно, кому-то будет полезна эта информация. Я на неё убил часик-полтора ((
Изображение

si001
Сообщения: 3
Зарегистрирован: 08 фев 2013, 15:06

Re: Урок 119. PendingIntent – флаги, requestCode. AlarmManag

Сообщение si001 » 26 окт 2015, 13:18

Подскажите плиз, как прописать receiver ?
у меня не ловит сообщения с секцией :

Код: Выделить всё

        <receiver android:name=".Receiver"
            android:enabled="true"
            android:exported="true" >
        </receiver>
Нужен intent filter ? Если можно, приведите секцию, плз, а то запутался - вообще тема манифеста интересует, у Вас она почти не освещена - пару ссылок на визард из эклипса и все (

Аватара пользователя
doter.ua
Сообщения: 1106
Зарегистрирован: 23 ноя 2013, 16:08
Откуда: Ukraine

Re: Урок 119. PendingIntent – флаги, requestCode. AlarmManag

Сообщение doter.ua » 26 окт 2015, 18:48

si001 писал(а):Подскажите плиз, как прописать receiver ?
у меня не ловит сообщения с секцией :

Код: Выделить всё

        <receiver android:name=".Receiver"
            android:enabled="true"
            android:exported="true" >
        </receiver>
Нужен intent filter ? Если можно, приведите секцию, плз, а то запутался - вообще тема манифеста интересует, у Вас она почти не освещена - пару ссылок на визард из эклипса и все (
http://developer.alexanderklimov.ru/and ... estXML.php
Семь раз отмерь - поставь студию.
Эклипс не студия, ошибка вылетит - не исправишь.
Скажи мне кто твой друг, и оба поставили студию.
Студия - свет, а эклипс - тьма.

danek130995
Сообщения: 42
Зарегистрирован: 25 янв 2015, 18:57

Re: Урок 119. PendingIntent – флаги, requestCode. AlarmManag

Сообщение danek130995 » 02 ноя 2015, 19:58

An-droid писал(а):Добрый день. Урок 119 становится делать сложнее, потому что метод

Код: Выделить всё

 void sendNotif(int id, PendingIntent pIntent) {
    Notification notif = new Notification(R.drawable.ic_launcher, "Notif "
        + id, System.currentTimeMillis());
    notif.flags |= Notification.FLAG_AUTO_CANCEL;
    notif.setLatestEventInfo(this, "Title " + id, "Content " + id, pIntent);
    nm.notify(id, notif);
  }
отказывается работать - setLatestEventInfo не просто зачёркивает (устаревший), а вообще выделяет красным.

В связи с чем переписал данный метод так:

Код: Выделить всё

 void sendNotif(int id, PendingIntent pIntent) {
    Notification notification = new Notification.Builder(getApplicationContext())
                .setContentTitle("Title " + id)
                .setContentText("Content " + id)
                .setSmallIcon(R.mipmap.ic_launcher)
                .setAutoCancel(true)
                .setContentIntent(pIntent)
                .getNotification();

        notificationManager.notify(id, notification);
  }
Возможно, кому-то будет полезна эта информация. Я на неё убил часик-полтора ((
An-droid, спасибо Вам огромное!

bankir1980
Сообщения: 1
Зарегистрирован: 03 ноя 2015, 12:13

Re: Урок 119. PendingIntent – флаги, requestCode. AlarmManag

Сообщение bankir1980 » 03 ноя 2015, 12:21

Никто так и не поднял главный вопрос будильника, хотя "намёк" проскакивал.

Как поддерживать "бесконечный" жизненный цикл повторяющегося будильника?
Речь идёт о случае, если приложение было "убито" в настройках, в списке приложения или чистильщиками памяти или, что самое главное - осью, допустим при нехватке памяти?

Товарищ тут писал про такое на самсунге, но никто на это внимания не обратил.

У меня задача ежедневно запускать определённый код. Если процесс прибит случайно или намеренно. Все будильники убиваются.
Началась такая канитель кажется с Android 3.0 - будильник не живёт без процесса приложения и все будильники убиваются вместе с процессом.

Я же пока сделал запуск будильника из сервиса, который живёт в отдельном процессе от процесса приложения (чтобы памяти меньше жрать), и который по флагам onStartCommand перезапускается в случае необходимости убийства процесса. При загрузке устройства стартует этот сервис, перезапускающий будильник. Будильник в таком случае привязан к процессу сервиса.

Обойти стороной данную тему, как мне кажется, неправильно, учитывая саму суть будильников.

Или может быть всё не так страшно?

GRAF_COLLIOSTRO
Сообщения: 115
Зарегистрирован: 08 янв 2015, 14:32

Re: Урок 119. PendingIntent – флаги, requestCode. AlarmManag

Сообщение GRAF_COLLIOSTRO » 09 дек 2015, 06:49

накАнецтА пабедил!!!))) корочь повозился достаточно с этой бедой. изучил глубоко и сам урок и форум)

там выше спрашивали..., в общем я пришёл к такой схеме:

есть класс, который ставит будильники. он дёргает системное время и высчитывает соответственно на когда ставить будильники. при повторяющемся интенте проблем никаких - последний вариант установленного будильника срабатывает

есть boot ресивер, который дёргает класс будильников

и вот самое главное: перечитал кучу статей когда и почему падают будильники. вразумительного объяснения я не нашёл, разве что замечено, будильники отпадают на реальных устройствах когда устройство уходит в спячку-просыпается многократно... пишут про самсунги и htc... но суть не в этом.

в качестве таблетки предлагается вот такое решение:
для контроля ставится один разовый будильник для самого приложения. у него нет вейкапа и время стоит 1 час от текущего. он сработает по времени или сработает сразу как проснётся устройство и перезапустит класс будильников обновит их все и себя самого без шума и пыли.

как пишут при таком подходе будильники живут вечно. реализовал. теперь тесчу на выносливость. попробовал поставить будильник с вейкапом на 10 дней вперёд. посмотрим как отработает)
У меня задача ежедневно запускать определённый код. Если процесс прибит случайно или намеренно. Все будильники убиваются.
ну вот какбы то что нагуглил должно решать эту проблему. тестировать очень тяжко. требуется время( ждём(

Siemenstim
Сообщения: 9
Зарегистрирован: 16 апр 2013, 14:04

Re: Урок 119. PendingIntent – флаги, requestCode. AlarmManag

Сообщение Siemenstim » 12 мар 2016, 22:52

Всем привет.
Есть приложение, где пользователь устанавливает время сработки Alarm Manager, который в свою очередь из ресивера запускает уведомление. Добавил boot Receiver для сработки после перезагрузки. Теперь вопрос:
- Каким способом лучше сохранить установленное пользователем время для запуска Alarm Manager после ребута?

Naidovich
Сообщения: 1
Зарегистрирован: 20 окт 2016, 18:43

Re: Урок 119. PendingIntent – флаги, requestCode. AlarmManag

Сообщение Naidovich » 20 окт 2016, 18:53

метод sendNotif пришлось переписать, система не нашла метол setLatestEventInfo

Код: Выделить всё

void sendNotif(int id, PendingIntent pIntent) { нашел тут //http://stackoverflow.com/questions/1207269/sending-a-notification-from-a-service-in-android
        Notification notif = new Notification.Builder(this)
                .setContentTitle("Title " + id)
                .setContentText("Content " + id)
                .setSmallIcon(R.mipmap.icon)
                .setContentIntent(pIntent)
                .setAutoCancel(true)
                .setContentIntent(pIntent).build(); //добавляем PendingIntent
        NotificationManager notificationManager =
                (NotificationManager) getSystemService(NOTIFICATION_SERVICE);

        notificationManager.notify(id, notif);//id должен быть уникальным, чтобы сообщений было несколько
    }

nebesny
Сообщения: 5
Зарегистрирован: 13 окт 2016, 20:43

Re: Урок 119. PendingIntent – флаги, requestCode. AlarmManag

Сообщение nebesny » 29 дек 2016, 11:22

Люди добрые, как же грамотно с API 19 ставить наступление события по точному времени каждый день?

Код: Выделить всё

 alarmManager.setRepeating(AlarmManager.RTC_WAKEUP, calendar.getTimeInMillis(), AlarmManager.INTERVAL_DAY, pendingIntent);
идеально работает для API 16.
Для новых версий пробовал

Код: Выделить всё

alarmManager.setInexactRepeating
и

Код: Выделить всё

 alarmManager.setExactAndAllowWhileIdle
. Не работает. Вообще не срабатывает, даже с опозданием.
Задача выполнять кое что в 23:59 каждый день, естественно, для все версий ОС.
Кто как решает проблему?

Аватара пользователя
Vladimir V.
Сообщения: 2
Зарегистрирован: 15 май 2017, 11:55
Откуда: Yekaterinburg

Re: Урок 119. PendingIntent – флаги, requestCode. AlarmManag

Сообщение Vladimir V. » 15 май 2017, 14:01

Коллеги, подскажите, в чём косяк?
При касании системного уведомления в баре в лог должны выводится сообщения. Но не выводятся.
Вот код MainActivity.java:

Код: Выделить всё

package com.example.samsung.p1191_pendingintent;

import android.app.AlarmManager;
import android.app.Notification;
import android.app.NotificationManager;
import android.app.PendingIntent;
import android.content.Context;
import android.content.Intent;
import android.os.Build;
import android.os.Bundle;
import android.support.annotation.RequiresApi;
import android.support.v7.app.AppCompatActivity;
import android.view.View;

public class MainActivity extends AppCompatActivity {

    private NotificationManager nm;
    private AlarmManager am;
    private Intent intent1, intent2;
    private PendingIntent pendingIntent1, pendingIntent2;
    private String message;

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

        nm = (NotificationManager) getSystemService(NOTIFICATION_SERVICE);
        am = (AlarmManager) getSystemService(ALARM_SERVICE);
    }

    public void onClickBtn(View view) {

        switch (view.getId()) {

            case R.id.btn1:
                intent1 = createIntent(getString(R.string.action_1), getString(R.string.extra_1));
                pendingIntent1 = PendingIntent.getBroadcast(this, 0, intent1, 0);

                intent2 = createIntent(getString(R.string.action_2), getString(R.string.extra_2));
                pendingIntent2 = PendingIntent.getBroadcast(this, 0, intent2, 0);

                compare(view.getContext());
                sendNotif(view.getContext(), 1, pendingIntent1);
                sendNotif(view.getContext(), 2, pendingIntent2);
                break;
            default:
                break;
        }

    }

    private Intent createIntent(final String action, final String extra) {
        Intent intent = new Intent(this, Receiver.class);
        intent.setAction(action);
        intent.putExtra(getString(R.string.extra), extra);
        return intent;
    }

    private void compare(final Context context) {
        message = "intent 1 == intent 2: " + intent1.filterEquals(intent2);
        Messager.sendToAllRecipients(context, message);
        message = "pendingIntent1 == pendingIntent2: " + pendingIntent1.equals(pendingIntent2);
        Messager.sendToAllRecipients(context, message);
    }

    @RequiresApi(api = Build.VERSION_CODES.HONEYCOMB)
    private void sendNotif(final Context context, final int id, final PendingIntent pendingIntent) {
        //Подготовка уведомления в статус-бар
        //noinspection deprecation
        Notification notification = new Notification.Builder(context)
                //Установка заголовка
                .setContentTitle("Notification's title " + id)
                //Установка сообщения для статус-бара
                .setContentText("Notification's text " + id)
                //Установка стикера
                .setTicker("Notification's ticker " + id)
                //Установка малой иконки
                .setSmallIcon(R.mipmap.ic_launcher_round)
                //Подключение активити к записи
                .setContentIntent(pendingIntent)
                //Установка флага, удаляющего уведомление из списка после нажатия
                .setAutoCancel(true)
                //Только для API не младше №16
//              .setSubText("The notification's subtext");
                //Создание строки в разворачивающемся списке уведомлений
                //noinspection deprecation
                .getNotification();
        //Отправка уведомления в статус-бар
        nm.notify(id, notification);
    }
}
Вот код Receiver.java

Код: Выделить всё

package com.example.samsung.p1191_pendingintent;

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

/**
 * Created by samsung on 12.05.2017.
 */

public class Receiver extends BroadcastReceiver {

    @Override
    public void onReceive(Context context, Intent intent) {
        String message = context.getString(R.string.receiver)
                + " " + context.getString(R.string.on_receive);
        Messager.sendToAllRecipients(context, message);
        message = context.getString(R.string.action_) + " " + intent.getAction();
        Messager.sendToAllRecipients(context, message);
        message = context.getString(R.string.extra_) + " "
                + intent.getStringExtra(context.getString(R.string.extra));
        Messager.sendToAllRecipients(context, message);
    }
}
Это код класса Messager.java

Код: Выделить всё

package com.example.samsung.p1191_pendingintent;

import android.content.Context;
import android.util.Log;
import android.widget.Toast;

/**
 * Created by samsung on 12.05.2017.
 */

public class Messager {

    private final static String LOG_TAG = "myLogs";

    public static final void sendToAllRecipients(final Context context, final String message) {
        Log.d(LOG_TAG, message);
        Toast.makeText(context, message, Toast.LENGTH_SHORT).show();
    }

    public static final void sendToOnlyLog(final String message) {
        Log.d(LOG_TAG, message);
    }
}
В чём-то всегда начинающий,
Что-то всегда знающий,
Где-то неуспевающий.

Аватара пользователя
Vladimir V.
Сообщения: 2
Зарегистрирован: 15 май 2017, 11:55
Откуда: Yekaterinburg

Re: Урок 119. PendingIntent – флаги, requestCode. AlarmManag

Сообщение Vladimir V. » 15 май 2017, 16:02

Naidovich писал(а):метод sendNotif пришлось переписать, система не нашла метол setLatestEventInfo

Код: Выделить всё

void sendNotif(int id, PendingIntent pIntent) { нашел тут //http://stackoverflow.com/questions/1207269/sending-a-notification-from-a-service-in-android
        Notification notif = new Notification.Builder(this)
                .setContentTitle("Title " + id)
                .setContentText("Content " + id)
                .setSmallIcon(R.mipmap.icon)
                .setContentIntent(pIntent)
                .setAutoCancel(true)
                .setContentIntent(pIntent).build(); //добавляем PendingIntent
        NotificationManager notificationManager =
                (NotificationManager) getSystemService(NOTIFICATION_SERVICE);

        notificationManager.notify(id, notif);//id должен быть уникальным, чтобы сообщений было несколько
    }
С учётом испльзования библиотеки android.support.v4.app код будет выглядеть так:

Код: Выделить всё

    private void sendNotif(final Context context, final int id, final PendingIntent pendingIntent) {
        //Подготовка уведомления в статус-бар
        Notification notification = new NotificationCompat.Builder(context)
                //Установка заголовка
                .setContentTitle("Notification's title " + id)
                //Установка сообщения для статус-бара
                .setContentText("Notification's text " + id)
                //Установка стикера
                .setTicker("Notification's ticker " + id)
                //Установка времени сообщения
                .setWhen(System.currentTimeMillis())
                //Установка малой иконки
                .setSmallIcon(R.mipmap.ic_launcher_round)
                //Подключение активити к записи
                .setContentIntent(pendingIntent)
                //Установка флага, удаляющего уведомление из списка после нажатия
                .setAutoCancel(true)
                //Только для API не младше №16
//              .setSubText("The notification's subtext");
                //Создание строки в разворачивающемся списке уведомлений
                //noinspection deprecation
                .build();
        //Отправка уведомления в статус-бар
        nm.notify(id, notification);
    }
}
В чём-то всегда начинающий,
Что-то всегда знающий,
Где-то неуспевающий.

WKBAPKA
Сообщения: 32
Зарегистрирован: 03 янв 2014, 14:28

Re: Урок 119. PendingIntent – флаги, requestCode. AlarmManag

Сообщение WKBAPKA » 04 фев 2018, 19:41

Коллеги подскажите, если я из уведомления вызывают некую активность, по нажатию кнопки выполняю в этой активности некую деятельность и вызываю метод finish(). Активность закрывается, но остается в стеке, установка флагов при создании Intent ни как не влияет на это, как я понимаю, или мне кажется, что вызываемая активность становиться как бы главной корневой активностью приложения и не реагирует на флаги, на которые реагируют дочерние активности вызываемые из главной активности. Но мне надо добиться результата, когда пользователь нажал кнопку и активность ушла навсегда, ему не надо возвращаться потом к этой активности (как пример, диалоговые окна, нажал на ок и в стеке не должно быть ничего).
Возможно, есть флаги которые позволяют открыть активность из уведомления в нужном режиме?

WKBAPKA
Сообщения: 32
Зарегистрирован: 03 янв 2014, 14:28

Re: Урок 119. PendingIntent – флаги, requestCode. AlarmManag

Сообщение WKBAPKA » 04 фев 2018, 20:04

Сам спросил, сам нашел решение...
Если прописать в манифесте для активити вот такое вот

android:excludeFromRecents="true"

то работает как мне надо

Дмитрий_
Сообщения: 9
Зарегистрирован: 17 сен 2013, 19:46

Re: Урок 119. PendingIntent – флаги, requestCode. AlarmManag

Сообщение Дмитрий_ » 27 мар 2018, 16:01

Ребята не срабатывает будильник SDK >= 23
При старте сервиса делаю

Код: Выделить всё

startForeground(1002, notification);
		PowerManager.WakeLock wl1;
    		PowerManager pm = (PowerManager)this.getSystemService(
                Context.POWER_SERVICE);
		wl = pm.newWakeLock(
	            PowerManager.FULL_WAKE_LOCK, "TAG1");
		wl.acquire();
потом создаю Alarm с проверкой версии SDK

Код: Выделить всё

if (Build.VERSION.SDK_INT >= 23) {// Wakes up the device in Doze Mode
  alarmManager.setExactAndAllowWhileIdle(AlarmManager.RTC_WAKEUP, t, amPIntent);
} else if (Build.VERSION.SDK_INT >= 19) {// Wakes up the device in Idle Mode
  alarmManager.setExact(AlarmManager.RTC_WAKEUP, t, amPIntent);
} else {// Old APIs
  alarmManager.set(AlarmManager.RTC_WAKEUP, t, amPIntent);
}
Когда Alarm срабатывает опять ставлю на повтор.
Если подключена зарядка все нормально срабатывает, без зарядки Alarm в течении 2-х минут срабатывает, потом останавливает до включения телефона либо когда прилетит уведомление в статус бар от других приложений потом опять перестаёт срабатывать.

В манифест добавил:
<uses-permission android:name="android.permission.REQUEST_IGNORE_BATTERY_OPTIMIZATIONS"/>
<uses-permission android:name="android.permission.WAKE_LOCK" />

При запуске приложения сделал запрос

Код: Выделить всё

		if (Build.VERSION.SDK_INT >= 23)
			if (!pm.isIgnoringBatteryOptimizations(getPackageName()) ){

				Intent intent = new Intent(Settings.ACTION_REQUEST_IGNORE_BATTERY_OPTIMIZATIONS,
						Uri.parse("package:" + getPackageName()));
				startActivity(intent);	
			}
При подтверждении добавлении в список разрешенных приложения в итоге там нет, хотя при повторном запросе разрешения pm.isIgnoringBatteryOptimizations(getPackageName() возвращает true - при этом в списке разрешенных нет. Добавляю приложение в список вручную и все ровно засыпает...

Аватара пользователя
powercat
Сообщения: 508
Зарегистрирован: 20 июл 2012, 11:31

Re: Урок 119. PendingIntent – флаги, requestCode. AlarmManag

Сообщение powercat » 21 ноя 2018, 17:49

А спрошу-ка здесь ))

Манифест:

Код: Выделить всё

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

    <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>

        <activity
            android:name=".Screen"
            android:label="@string/title_activity_screen"
            android:theme="@style/AppTheme.NoActionBar">
        </activity>

        <receiver android:name=".Receiver"
            android:enabled="true">
            <intent-filter>
                <action android:name="action" />
            </intent-filter>
        </receiver>

    </application>
Главная активити. Создаю Интент, прикручиваю ему action, кладу одно данное для получения в ресивере, оборачиваю в пендинг, скармливаю Аларму. Надеюсь, что аларм через 5 секунд пнет ресивер и передаст пендинг.

Код: Выделить всё

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

          Intent intent=new Intent(this,Screen.class);
          intent.setAction("action");
          intent.putExtra("key","ДАННЫЕ");

          PendingIntent pending_intent=PendingIntent.getBroadcast(this,0,intent,0);
          AlarmManager alarm_manager=(AlarmManager) getSystemService(ALARM_SERVICE);
          alarm_manager.setExact(AlarmManager.RTC,System.currentTimeMillis()+5000,pending_intent);
     }
Ресивер. Просто вывод в лог сообщения, что зашло сюда. Интент пока не потрошится.

Код: Выделить всё

public class Receiver extends BroadcastReceiver
{
     @Override
     public void onReceive(Context context, Intent intent)
     {
          Log.d("---!!!---","В ресивере");
     }
}
Все запускается, но в ресивер не попадает. :? :shock:

Вопрос - где косяк?

Аватара пользователя
powercat
Сообщения: 508
Зарегистрирован: 20 июл 2012, 11:31

Re: Урок 119. PendingIntent – флаги, requestCode. AlarmManag

Сообщение powercat » 22 ноя 2018, 13:45

Почему бродкаст БЕЗ фильтра отрабатывает?? :o :shock:

Ответить