我可以依赖SharedPreferences中的标志来检查用户是否是该应用的新手?

时间:2016-06-23 07:48:43

标签: android sharedpreferences

我可以在SharedPreferences中设置一个布尔标志,以标记用户是否第一次启动了应用程序。但问题是:用户可以从“设置”中清除SharedPreferences,并且一些实用程序应用程序还要求用户在磁盘快满时清除应用程序数据。我的应用会将<table> <tr><td>1</td></tr> <tr><td>2</td></tr> <tr><td>3</td></tr> <tr class="not-hoverable"><td>4 (not hoverable)</td></tr> <tr><td>5</td></tr> <tr><td>6</td></tr> </table>发送到服务器端以计算一些统计信息,因此标记是否准确非常重要。

有什么方法可以编写用户无法清除的每个应用数据?如果无法做到这一点,我该如何确保is_new_user尽可能准确?

3 个答案:

答案 0 :(得分:3)

  

我有什么办法可以编写用户无法清除的每个应用程序数据吗?

Yes但您不应该使用它,因为它会让用户感到困惑。困惑的用户不是满意的用户。

  

如何确保the is_new_user尽可能准确?

如果他擦除了应用数据,您可能会重新考虑您的逻辑并将用户视为新用户。它与用户获得第二台设备并在那里安装应用程序几乎相同。

否则,您可以通过Is there a unique Android device ID?阅读,以获得一些启发,以便识别新的&#39;安装。

答案 1 :(得分:1)

您无法在SharedPreferences上进行中继。用户可以删除应用程序或安装在其他设备上。如果它很重要,您可以在服务器上使用app保存有关设备ID的信息。但它不是更好的解决方案,不同的设备和设备ID可以更改或不存在。 另一种选择是创建服务器站点并要求用户登录。 此外,您还可以使用设备的Google帐户保存用户之前在Google云端硬盘中安装应用的信息。

编辑: 还有一件事是Data backup

答案 2 :(得分:1)

安全的方法是使用HTTP post将此类用户的信息存档到远程服务器。

您可以考虑使用:

并使用restful服务更新用户的信息,例如,如果这是他/她第一次登录。