我的应用程序中的后退按钮问题

时间:2011-09-21 10:43:41

标签: android button back

我希望在关闭手机时清除共享偏好设置值?

3 个答案:

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