Android Alarm Manager с широковещательным приемником, зарегистрированным в коде, а не в манифесте

Я хочу использовать сигнал тревоги для запуска некоторого кода в определенное время. Я успешно реализовал сигнал тревоги с зарегистрированным в манифесте приемником вещания, но, насколько я понимаю, этот метод использует отдельный класс для приемника вещания.

Я могу использовать этот метод для запуска другого действия, но не могу использовать его для запуска метода в моем основном действии?

( как я могу уведомить о текущем действии от приемника вещания? )

Поэтому я пытался зарегистрировать приемник вещания в моем основном действии, как объяснено в ответе выше.

private BroadcastReceiver receiver = new BroadcastReceiver(){
    @Override
    public void onReceive(Context context, Intent intent) {
        Toast.makeText(context, "hello", Toast.LENGTH_SHORT).show();
        uploadDB();         
    }
};    

public void onResume() {
    super.onResume();

    IntentFilter filter = new IntentFilter();
    filter.addAction(null);

    this.registerReceiver(this.receiver, filter);
}

public void onPause() {
    super.onPause();

    this.unregisterReceiver(this.receiver);
}

Однако я не смог заставить это работать с менеджером тревоги, Я не уверен относительно того, как я должен связать намерение тревоги с приемником вещания. Может ли кто-нибудь указать мне на пример динамической регистрации приемника вещания менеджера аварийных сигналов в действии? Или объясните, как мне это сделать?

12
задан Community 23 May 2017 в 12:34
поделиться