WedX - журнал о программировании и компьютерных науках

Открыть AlertDialog из AlarmManger

Я пытаюсь заставить BroadcastReceiver запустить AlertDialog, и он просто пропускает вызов метода диалога (и бросает исключение catch): My BroadcastReceiver:

public void onReceive(Context context, Intent intent) {
        this.con = context;
        try 
        {            
            PowerManager pm = (PowerManager) context.getSystemService(Context.POWER_SERVICE);
            PowerManager.WakeLock wl = pm.newWakeLock(PowerManager.PARTIAL_WAKE_LOCK, "YOUR TAG");
            //Acquire the lock
            wl.acquire();

            intent.getExtras();
            new StringBuilder();
            wl.release();
            String[] a ={"a","b"};
            create(context, a); //The Dialog Call
            setOnetimeTimer(con);
            Toast.makeText(context, "Hurray!", Toast.LENGTH_SHORT).show();

        } 
        catch (Exception e) 
        {
             Toast.makeText(context, "Error,broadcastReciver"+e.getMessage(), Toast.LENGTH_LONG).show();
             e.printStackTrace();
        }
   }

И вот метод create(): (который создает диалог) public static void create (Context context, String [] descriptions) {

        AlertDialog.Builder builder = new AlertDialog.Builder(context);
        builder.setCancelable(true);
        builder.setTitle("Random String");
        builder.setMessage(descriptions[rn.nextInt(2)]);
        //builder.setMessage("test");
        builder.setInverseBackgroundForced(false);
        builder.setPositiveButton("Close",
                new DialogInterface.OnClickListener() {
                    @Override
                    public void onClick(DialogInterface dialog,
                            int which) {
                        dialog.dismiss();
                    }
                });
        AlertDialog alert = builder.create();
        alert.show();
    }

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


Ответы:


1

Без настройки полей большей продолжительности календаря (например, года) кажется, что вы устанавливаете будильник раньше текущего времени. Попробуйте что-то вроде этого:

Calendar calendar = Calendar.getInstance();
calendar.setTimeInMillis(System.currentTimeMillis());
calendar.add(Calendar.MINUTES, 23*60 + 58);
24.04.2013

2

(Перед редактированием) 1.i Вызывается класс Dialog, поэтому, когда намерение попыталось вызвать Dialog.class, оно было вызвано в системном классе Dialog. 2. Я использовал: Как создать прозрачное действие на Android?, чтобы сделать Activity Transparent, и я не использовал ContentView, поэтому только всплывающее окно Dialog над уже открытым действием.

24.04.2013
Новые материалы

Как проанализировать работу вашего классификатора?
Не всегда просто знать, какие показатели использовать С развитием глубокого обучения все больше и больше людей учатся обучать свой первый классификатор. Но как только вы закончите..

Работа с цепями Маркова, часть 4 (Машинное обучение)
Нелинейные цепи Маркова с агрегатором и их приложения (arXiv) Автор : Бар Лайт Аннотация: Изучаются свойства подкласса случайных процессов, называемых дискретными нелинейными цепями Маркова..

Crazy Laravel Livewire упростил мне создание электронной коммерции (панель администратора и API) [Часть 3]
Как вы сегодня, ребята? В этой части мы создадим CRUD для данных о продукте. Думаю, в этой части я не буду слишком много делиться теорией, но чаще буду делиться своим кодом. Потому что..

Использование машинного обучения и Python для классификации 1000 сезонов новичков MLB Hitter
Чему может научиться машина, глядя на сезоны новичков 1000 игроков MLB? Это то, что исследует это приложение. В этом процессе мы будем использовать неконтролируемое обучение, чтобы..

Учебные заметки: создание моего первого пакета Node.js
Это мои обучающие заметки, когда я научился создавать свой самый первый пакет Node.js, распространяемый через npm. Оглавление Глоссарий I. Новый пакет 1.1 советы по инициализации..

Забудьте о Matplotlib: улучшите визуализацию данных с помощью умопомрачительных функций Seaborn!
Примечание. Эта запись в блоге предполагает базовое знакомство с Python и концепциями анализа данных. Привет, энтузиасты данных! Добро пожаловать в мой блог, где я расскажу о невероятных..

ИИ в аэрокосмической отрасли
Каждый полет – это шаг вперед к великой мечте. Чтобы это происходило в их собственном темпе, необходима команда астронавтов для погони за космосом и команда технического обслуживания..


Для любых предложений по сайту: [email protected]