在应用程序退出时清除数据
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 这篇文章中有一个示例项目。
希望对你有帮助!
【讨论】:
以上是关于在应用程序退出时清除数据的主要内容,如果未能解决你的问题,请参考以下文章