我的共享偏好设置中有一个复选框。 我想在我的设备重新启动(或关闭并启动)后才取消选中它。 我怎样才能做到这一点 ? 我试过像这样使用广播接收器:
<receiver android:name="android.dunk.services.MyBroadcastReceiver" >
<action android:name="android.intent.action.BOOT_COMPLETED"/>
</receiver>
并添加了这个:
<uses-permission android:name="android.permission.RECEIVE_BOOT_COMPLETED"/>
在清单标签中。
在我的广播接收器中:
public void onReceive(Context context, Intent intent) {
String action = intent.getAction();
if(action != null)
{
SharedPreferences sp = ((Activity) context).getPreferences(Context.MODE_PRIVATE);
SharedPreferences.Editor editor = sp.edit();
editor.putBoolean("myCheckBox", false);
editor.commit();
}
}
答案 0 :(得分:0)
传递给Context
的{{1}}不是BroadcastReceiver.onReceive()
,所以此行应该抛出Activity
(您应该在logcat中看到):
CastClassException
您需要使用SharedPreferences sp = ((Activity) context).getPreferences(Context.MODE_PRIVATE);
的方法来访问首选项。试试这个:
Context
SharedPreferences sp = context.getSharedPreferences(name, Context.MODE_PRIVATE);
应该是您的包裹的名称(即:name
)