如何在android

时间:2017-08-25 10:41:24

标签: java android

我正在使用一个库,每次我都想先使用它i have to login。这需要一些时间才能登录object并且这样做并不好。

我不想每次打开我的应用程序都等。

有没有办法保持这个登录对象? (关闭应用程序后)我可以将此对象保留在内存或磁盘中,还是保存在SharedPreferences中作为字符串?

目标类有这些文件:

protected String deviceId;
private String username;
private String password;
protected boolean isLoggedIn;
private String uuid;
protected String rankToken;
private long userId;
protected Response lastResponse;
protected OkHttpClient client;
private final Set<Cookie> cookieStore = new HashSet();

如果您有解决方案,请同时编写示例代码。

我尝试了这个沙发并且无法正常工作:

String json = gson.toJson(insta,Target.class);
Target myTarget = gson.fromJson(json, Target.class);

json为空。

2 个答案:

答案 0 :(得分:0)

您使用的是哪个库? 如果图书馆提供季票令牌,您可以存储季票令牌。 此外,为什么不将数据存储在数据库(本地)中,当用户启动应用程序时,您首先从数据库获取数据,同时在后台执行登录请求。一旦登录,只需更新数据如果需要更新。

答案 1 :(得分:0)

您可以通过多种方式在Android中保留信息。 但请记住,如果您可以轻松地保留简单类型(booleanlongString),则必须确定哪些信息对于其他类型的序列化非常重要。

例如,OkHttpClient不应该保留,因为它只是一个Web客户端,并且不包含任何有价值的数据。

说过你可以使用下面的一种可能性:

  • 使用SharedPreferences,这是一个简单的键/值存储,您可以在其中独立存储每个字段。
  • 使用像SQLite这样的数据库,它需要更多的工作来集成它,但如果你将来有更多的数据,它会变得很方便。
  • 使用java Serialization,它将使您能够在文件中编写类的二进制表示形式,然后再检索它。但请注意那些可能无法序列化的ResponseOkHttpClientCookie类(要求您将序列化信息与其他类别分离)。