在运行android

时间:2017-06-13 07:26:41

标签: android

我正在为购买活动开发Android应用。我需要在应用程序运行期间存储用户数据(例如用户帐户列表,状态等)。当用户离开应用程序(按“退出”按钮)时,必须删除所有数据。我的应用程序还有一个超时:如果用户在10分钟内不做任何事情,它将被关闭。

在这种情况下实施数据存储的最佳方法是什么?

现在我正在使用带静态字段的类来存储用户数据,但这不是一个好的解决方案。

  1. 我不想使用共享首选项,因为我必须在用户关闭此应用程序时删除所有这些数据,并且SP只能存储原始数据。
  2. 我不想使用SQLite - 我认为,它很昂贵,因为我在不同的类和活动中调用帐户列表。
  3. 也许,将数据存储在Application子类中将是一个很好的解决方案,但有些人建议避免这种方式,因为当应用程序处于后台时存储数据存在问题。

1 个答案:

答案 0 :(得分:0)

如果您不想使用SQLite或共享首选项,您可以考虑在Application Subclass中存储数据。您可以通过在android中使用生命周期回调方法(例如{{3)来监听应用程序转到后台或前台的时候您活动中的{}或OnPause()

public class ApplicationController extends Application {
    private static ApplicationController mInstance;

    @Override
        public void onCreate() {
        super.onCreate();
        mInstance=this;
        //first time operations      
    }

public static synchronized ApplicationController getInstance() {
        return mInstance;
    }

}