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

发布于 2024-12-05 14:16:38 字数 24 浏览 0 评论 0原文

我想在手机关闭时清除共享首选项值?

I want to clear shared preference values when my mobile is switched off?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(3

我的奇迹 2024-12-12 14:16:38

当设备关闭时,如何清除SharedPreference

您可以在设备启动时通过 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" />

How can you clear SharedPreference when the device is switched off.

You can clear it when the device starts thru 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.
        }
    }
}

In your manifest add this:

<receiver android:name=".receiver.PhoneStateReceiver">
    <intent-filter>
        <action android:name="android.intent.action.BOOT_COMPLETED" />
    </intent-filter>
</receiver>  

Add permission:

<uses-permission android:name="android.permission.RECEIVE_BOOT_COMPLETED" />
波浪屿的海角声 2024-12-12 14:16:38

据我所知,唯一的可能性是使用 OnDestroy() 但你的程序应该在设备关闭时运行。

Asfar as i know the only possibility is to use OnDestroy() but your program should be running when the device is shutdown.

眼前雾蒙蒙 2024-12-12 14:16:38

相同的问题:Android: Android:如何使特定的 SharedPreference 在系统重新启动后重置自身?

我不知道有什么不同的方法。这个实现非常简单。只需在 SharedPreference.Editor 上调用 .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" />

Same question as: Android: Android: How to make a specific SharedPreference reset itself after the system reboots?

I don't know of a different way. This implementation is quite simple. Just handle the BOOT_COMPLETED broadcast action and clear preferences by calling .clear() on the SharedPreference.Editor (answer is here).

A simple Boot receiver might look like this:

public class OnBootReceiver extends BroadcastReceiver{

                @Override
                public void onReceive(Context context, Intent intent) {
                      //clear preferences here         
                }

}

Declare it also in your AndroidManifest.xml as:

           <receiver android:name=".OnBootReceiver">
                    <intent-filter>
                            <action android:name="android.intent.action.BOOT_COMPLETED" />
                    </intent-filter>
            </receiver>

You will also need a permission for this:

<uses-permission android:name="android.permission.RECEIVE_BOOT_COMPLETED" />
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文