gpt4 book ai didi

java - SharedPreferences 未在 onResume() 中更新

转载 作者:行者123 更新时间:2023-11-30 11:35:02 25 4
gpt4 key购买 nike

我是 Android 编程的新手,我正在尝试开发一个用于设置闹钟的应用程序。由于 AlarmManager 将在系统重启时丢失所有警报,因此我使用 SharedPreferences 保存了用户创建的所有警报。

我有一个主要 Activity ,其中列出了所有警报。我有一个创建警报的 alarm_create Activity 。 alarm_receiver 类在闹钟响起时被调用为 PendingIntent

现在,即使 alarm_receiver 在警报中做出更改,当应用程序恢复时,它也不会反射(reflect)在 main_activity 中。

为了保存警报,我使用了队列的概念,它可以帮助我循环检索警报。

请帮我解决这个问题。

最佳答案

我不太确定我是否完全理解你想要什么,但据我所知,你想在设备重启后再次设置警报。

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" />

关于java - SharedPreferences 未在 onResume() 中更新,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15333876/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com