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