我希望在关闭手机时清除共享偏好设置值?
答案 0 :(得分:2)
如何在设备SharedPreference
时清除switched off
。
您可以在设备启动时通过BraodcastReceiver
清除它。
public class PhoneStateReceiver extends BroadcastReceiver{
@Override
public void onReceive(final Context context, Intent intent) {
if(intent.getAction().equals(Intent.ACTION_BOOT_COMPLETED)){
//Clear your `SharedPreference` here.
}
}
}
在你的清单中添加:
<receiver android:name=".receiver.PhoneStateReceiver">
<intent-filter>
<action android:name="android.intent.action.BOOT_COMPLETED" />
</intent-filter>
</receiver>
添加权限:
<uses-permission android:name="android.permission.RECEIVE_BOOT_COMPLETED" />
答案 1 :(得分:0)
尽管我知道唯一的可能性是使用OnDestroy()
,但您的程序应在设备关闭时运行。
答案 2 :(得分:0)
同样的问题:Android:Android: How to make a specific SharedPreference reset itself after the system reboots?
我不知道有什么不同的方式。这种实现非常简单。只需通过在SharedPreference.Editor(answer is here)上调用.clear()来处理BOOT_COMPLETED广播操作并清除首选项。
一个简单的Boot接收器可能如下所示:
public class OnBootReceiver extends BroadcastReceiver{
@Override
public void onReceive(Context context, Intent intent) {
//clear preferences here
}
}
在AndroidManifest.xml中将其声明为:
<receiver android:name=".OnBootReceiver">
<intent-filter>
<action android:name="android.intent.action.BOOT_COMPLETED" />
</intent-filter>
</receiver>
您还需要获得此权限:
<uses-permission android:name="android.permission.RECEIVE_BOOT_COMPLETED" />