我是Android编程新手,我正在尝试开发一个用于设置闹钟的应用。由于AlarmManager
将丢失系统重启时的所有警报,因此我使用SharedPreferences
保存了用户创建的所有警报。
我有一个主要活动,其中列出了所有警报。我有一个alarm_create
活动,可以创建警报。当闹钟响起时,alarm_receiver
类被称为PendingIntent
。
现在,即使alarm_receiver
在闹钟中进行了更改,当应用程序恢复时,main_activity
也不会反映出来。
为了保存闹钟,我使用了队列的概念,这将帮助我循环检索警报。
请帮我解决这个问题。
答案 0 :(得分:1)
我不太确定我到底知道你想要什么,但据我所知,你想在设备重启后再次设置闹钟。
1)创建一个侦听重启的接收器:
public class BootReciever extends BroadcastReceiver {
@Override
public void onReceive(Context context, Intent intent) {
SharedPreferences settings = context.getSharedPreferences("YOUR SHAREDPREF NAME", 0);
SharedPreferences.Editor editor = settings.edit();
editor.putString("alarmName", "newAlarm");
editor.commit(); // Don't forget to commit your changes!
}
}
2)将它添加到你的androidmanifest.xml:
<receiver android:name="com.yourpackage.BootReciever">
<intent-filter>
<action android:name="android.intent.action.BOOT_COMPLETED"/>
</intent-filter>
</receiver>
3)添加权限:
<uses-permission android:name="android.permission.RECEIVE_BOOT_COMPLETED" />
答案 1 :(得分:0)
以下是我们用于保存sharedPreferences的代码段
Editor prefsEditor = preferences.edit();
prefsEditor.putString(CONFIG_INFO_KEY, configInfoJson);
prefsEditor.commit();
希望这有帮助
答案 2 :(得分:0)
实际上,SharedPreferences不会立即更新,它会在重新启动应用程序时更新。
不幸的是,在Android中重新启动应用程序并不容易,并且超出了应用程序的范围。
DecodeGnome的上述答案可用于重新列出列表或重新加载应用程序的警报。
我建议您选择SQLiteDatabase
Class,并将警报存储在SQLite数据库中,因为每个Android设备都有SQLiteDatabase。
您可以看到参考代码here。