Domanda

Ho un problema. Sono nuovo in Android e Java e sto realizzando un programma che spegne i suoni del telefono e riduce il display al momento selezionato dell'utente. Tutto viene fatto ottenendo i valori di input dell'utente (ora e minuto) e impostando l'allarme in base a questi valori per licenziare un intento a un Broadcastreceiver che avvia un servizio che disattiva i suoni e riduce il display. Voglio che quell'allarme venga riavviato dopo il riavvio. Ho pensato di poter semplicemente impostare un altro Broadcastreceiver che riceve un intento boot_completed e quindi imposta l'allarme che spara un intento a un broadcastreceiver usato prima che avvia il servizio. E il mio problema è che non so come mettere i valori dall'attività che ottiene l'input dell'utente al boradcastreceiver che viene avviato dall'intento boot_completed. O esiste un altro modo per impostare lo stesso allarme in base all'ingresso dell'utente dopo il riavvio? Nelle parole semplicemente voglio impostare automaticamente l'allarme dopo il riavvio con lo stesso tempo di incendio dell'allarme che è impostato dall'utente. Scusa per il mio cattivo inglese...

È stato utile?

Soluzione

Il tuo approccio è corretto.

L'unica cosa che devi aggiungere è persistere in DB o altrove. Ogni volta che l'utente imposta cose e interagisci con AlarmManager, mettilo anche in un file.

Quando avrai BOOT_COMPLETED, caricare i dati e impostare tutti gli allarmi precedentemente.

Altri suggerimenti

Nel manifest della tua applicazione:

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

Quindi implementa un Broadcastreceiver per ricevere la trasmissione:

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

Per l'impostazione dell'allarme dopo il riavvio è possibile scegliere i valori dell'allarme dalle preferenze condivise o da DB.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top