Question

J'ai un problème. Je suis nouveau sur Android et Java et je fais un programme qui éteint le téléphone sonne et diminue l'affichage à l'heure sélectionnée par l'utilisateur. Tout est fait en obtenant des valeurs d'entrée de l'utilisateur (heure et minute) et en définissant l'alarme en fonction de ces valeurs pour tirer une intention à un BroadCastreceiver qui démarre un service qui désactive les sons et diminue l'affichage. Je veux que cette alarme soit redémarrée après le redémarrage. J'ai pensé que je pouvais simplement définir un autre BroadCastReceiver qui reçoit une intention BOOT_COMPLETED, puis définit l'alarme qui tire une intention à un BroadCastreceiver utilisé avant qui démarre le service. Et mon problème est que je ne sais pas comment mettre les valeurs de l'activité qui permettent à l'entrée de l'utilisateur du boradaStreceiver qui est démarré par Boot_Completed Intention. Ou existe-t-il une autre façon de définir la même alarme en fonction de l'entrée utilisateur après le redémarrage? En termes simples, je souhaite définir automatiquement l'alarme après le redémarrage avec le même temps de feu que l'alarme définie par l'utilisateur. Désolé pour mon mauvais anglais...

Était-ce utile?

La solution

Votre approche est correcte.

La seule chose que vous devez ajouter est de le persister en DB ou ailleurs. Chaque fois que l'utilisateur configure des trucs et vous interagissez avec AlarmManager, mettez-le également dans un fichier.

Quand vous obtenez BOOT_COMPLETED, Chargez les données et définissez toutes les alarmes précédemment.

Autres conseils

Dans le manifeste de votre application:

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

Implémentez ensuite un BroadCastReceiver pour recevoir la diffusion:

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

Pour régler l'alarme après le redémarrage, vous pouvez choisir des valeurs de votre alarme à partir des préférences partagées ou à partir de DB.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top