Pergunta

Eu tenho um problema. Sou novo no Android e Java e estou fazendo um programa que desliga o telefone soa e diminui a tela no tempo selecionado do usuário. Tudo é feito, obtendo valores de entrada do usuário (hora e minuto) e definindo o alarme com base nesses valores para disparar uma intenção para um broadcastreceiver que inicia um serviço que desligar sons e diminui a tela. Eu quero que esse alarme seja reiniciado após a reinicialização. Eu pensei que posso simplesmente definir outro BroadCastreceiver que recebe o Boot_Completed Intent e depois define um alarme que dispara uma intenção de um BroadCastreceiver usado antes do qual inicia o serviço. E meu problema é que não sei como colocar os valores da atividade que leva a entrada do usuário ao BoradCastreceiver, que é iniciado por Boot_Completed Intent. Ou há outra maneira de definir o mesmo alarme com base na entrada do usuário após a reinicialização? Em simplesmente palavras, quero definir automaticamente o alarme após a reinicialização com o mesmo tempo de incêndio que o alarme definido pelo usuário. Desculpe pelo meu inglês ruim ...

Foi útil?

Solução

Sua abordagem está correta.

A única coisa que você precisa adicionar é persistir em DB ou em outro lugar. Cada vez que o usuário configura coisas e você interage com AlarmManager, coloque -o também em um arquivo.

Quando você fica BOOT_COMPLETED, carregue dados e defina todos os alarmes anteriormente.

Outras dicas

No manifesto do seu aplicativo:

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

Em seguida, implemente um BroadCastreceiver para receber a transmissão:

public class SampleBootReceiver extends BroadcastReceiver {

    @Override
    public void onReceive(Context context, Intent intent) {
        if (intent.getAction().equals("android.intent.action.BOOT_COMPLETED")) {
            // Set the alarm here.
        }
    }
}

Para definir o alarme após a reinicialização, você pode escolher valores do seu alarme de preferências compartilhadas ou de DB.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top