手机重启后设置闹钟

时间:2013-11-07 22:12:22

标签: android broadcastreceiver alarm reboot

我有问题。我是android和java的新手,我正在制作一个关闭手机声音的程序,并在用户选择的时间使显示屏变暗。一切都是通过获取用户输入值(小时和分钟)并根据这些值设置警报以向BroadcastReceiver发出意图来完成的,BroadcastReceiver启动关闭声音并使显示变暗的服务。我希望重启后重启警报。我认为我可以简单地设置另一个接收BOOT_COMPLETED意图的BroadcastReceiver,然后设置警报,该警报触发一个用于启动服务之前使用的BroadcastReceiver的意图。我的问题是我不知道如何将获取用户输入的活动的值放入由BOOT_COMPLETED intent启动的BoradcastReceiver。或者是否有其他方法可以根据重启后的用户输入设置相同的警报?简单地说,我想在重新启动后自动设置警报,其触发时间与用户设置的警报相同。抱歉我的英语不好......

2 个答案:

答案 0 :(得分:1)

你的方法是正确的。

您需要添加的唯一内容是将其保存在数据库或其他位置。每次用户设置内容并与AlarmManager进行交互时,请将其放在文件中。

当您获得BOOT_COMPLETED时,请加载数据并设置之前的所有警报。

答案 1 :(得分:0)

在您的应用程序清单中:

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

然后实现BroadcastReceiver以接收广播:

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

要在重启后设置闹钟,您可以从共享首选项或从DB中选择闹钟值。