gpt4 book ai didi

android - 使用 SharedPreferences 存储供广播接收器使用的数据不起作用

转载 作者:行者123 更新时间:2023-11-29 22:05:44 26 4
gpt4 key购买 nike

我正在编写一些代码,在屏幕打开时打开或关闭飞行模式(取决于用户的选择)。我保留了用户选择的标志(0 表示关闭,1 表示打开)。但出于某种原因,无论用户选择什么, Activity 中选择 (airplanei) 的值始终为 1。我确定错误出在我发布的代码中;最有可能错误地使用 SharedPreferences。

Activity 代码:-

protected void airplane(int i) {
// Store flag in SharedPreferences
SharedPreferences flags = this.getSharedPreferences("toggleflags",
MODE_WORLD_READABLE);
SharedPreferences.Editor editor = flags.edit();
if (i == 0)
editor.putInt("airplanei", 0);
else if (i == 1)
flags.edit().putInt("airplanei", 1);
else if (i == -1)
flags.edit().putInt("airplanei", -1);
editor.commit();
}

广播接收器中的代码:-

public class Screen_On extends BroadcastReceiver{
@Override
public void onReceive(final Context context, Intent intent) {
SharedPreferences flag = context.getSharedPreferences("toggleflags", 0);
int i = flag.getInt("airplanei", 1);
if (i == 0) {
//Code to turn airplane mode off
} else if (i == 1) {
//Code to turn airplane mode on
}
}
}

感谢您的宝贵时间。

最佳答案

正如@Matt 已经说过的,您实际上创建了两个新的 Editor 实例,但只首先提交:

flags.edit().putInt("airplanei", 1); // New editor here
...
flags.edit().putInt("airplanei", -1);
...
editor.commit(); // Commit first editor instance

关于android - 使用 SharedPreferences 存储供广播接收器使用的数据不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10806398/

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