在应用程序退出时清除数据

Posted

技术标签:

【中文标题】在应用程序退出时清除数据【英文标题】:Clear data at application exit 【发布时间】:2011-05-22 13:08:24 【问题描述】:

我在我的应用程序中使用了共享偏好来维护会话。并将用户 ID 和密码存储在共享首选项中。 当我退出我的应用程序时如何清除这些数据。因为当我重新启动我的应用程序时,它会给出上一个会话。 当我注销我的应用程序并再次启动应用程序时,它会很好地工作。在注销时,我将共享首选项数据(用户 ID 和密码)设为空。但我想在应用程序退出时清除所有这些数据。

我还在清单文件中使用了以下权限:“android.permission.CLEAR_APP_USER_DATA”

<uses-permission android:name="android.permission.CLEAR_APP_USER_DATA"></uses-permission>

但我不知道如何在编码中使用它们。

【问题讨论】:

当我这样清除数据时:菜单 - 设置 - 应用程序 - 管理应用程序 - 选择 - 清除数据。它会很好地工作并清除数据 【参考方案1】:

我在我的应用程序中使用共享偏好来维护会话。

不要那样做。对“会话”数据使用静态数据成员,对持久数据使用共享首选项。

当我退出应用程序时如何清除这些数据。

在 Android 中没有退出应用程序的概念,就像在 Web 上没有退出应用程序的概念一样。

如果您对会话数据使用静态数据成员,则当 Android 终止进程时,数据将自动清除,当应用程序被放弃很长时间时,它会理所当然地这样做。

【讨论】:

【参考方案2】:

不要使用共享首选项。只需使用全局变量即可。应该这样做:

class Globals 
    static public String userid;
    static public String pasword;

【讨论】:

当您的应用程序在进程死亡后返回时,这将失败。【参考方案3】:

您可以将以下代码用于开发和调试,但不能用于生产。 Android 应用程序不应“退出”,请参阅 here

public class MyActivity extends Activity 

     protected void onStop()
     
        SharedPreferences settings = getSharedPreferences(PREF_FILE_NAME, 0);
        Editor e = settings.edit();
        e.clear(); 
        e.commit();
     
 

【讨论】:

【参考方案4】:

尝试使用此处的教程解决您的问题:http://www.hrupin.com/2011/11/how-to-clear-user-data-in-your-android-application-programmatically 这篇文章中有一个示例项目。

希望对你有帮助!

【讨论】:

以上是关于在应用程序退出时清除数据的主要内容,如果未能解决你的问题,请参考以下文章

shiro 退出 清除缓存

shiro 退出 清除缓存

清除@SessionAttributes 网站实现退出登录

java 窗口关闭时清除输入的内容

清除和退出按钮

华为平板打开啥软件退出来,屏幕上出现同样的软件那是啥意思