Android Alarm Manager con receptor de difusión registrado en código en lugar de manifiesto

Quiero usar una alarma para ejecutar algún código en un momento determinado. He implementado con éxito una alarma con el receptor de transmisión registrado en el manifiesto pero, según tengo entendido, este método utiliza una clase separada para el receptor de transmisión.

¿Puedo usar este método para iniciar otra actividad pero no puedo usarlo para ejecutar un método en mi actividad principal?

(¿Cómo puedo notificar una actividad en ejecución desde un receptor de transmisión?)

Así que he estado tratando de registrar mi receptor de transmisión en mi actividad principal como se explica en la respuesta anterior.

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);
}

Sin embargo, no he podido hacer que esto funcione con el administrador de alarmas, no estoy seguro de cómo debo vincular la intención de la alarma con el receptor de transmisión. ¿Alguien podría señalarme un ejemplo de registro dinámico de un receptor de transmisión del administrador de alarmas en la actividad? ¿O explicar cómo haría esto?

Respuestas a la pregunta(1)

Su respuesta a la pregunta