我希望创建一个测验'具有多个类别的应用程序将在这些类别中成为用户将能够按顺序回答的问题,并且将保存其进度。我希望将进度保存在本地,以便可以在没有互联网的情况下使用,但我还想访问一些正在保存的信息,例如用户已完成哪些类别?
我有Java和SQL知识,但在将它们添加到一起时,我对整个事情感到非常困惑。
我是否需要在应用程序中实现SQLite数据库以存储用户的进度,以及在线存储所需数据的常规SQL服务器?我希望只使用SQLite数据库来完成这两个方面,但是我已经看了,我无法弄清楚是否可能。
感谢。
答案 0 :(得分:0)
SQLite是一个内部Android数据库,只有用户才能访问该数据库。如果你没有以前的经验,我想提一下,如果你重新格式化SQLite的结构,你将不得不删除应用程序并再次安装它,因为只有在第一次打开应用程序时才会调用onCreate()方法。
对于您的问题,您可以这样做:
用户无需通过互联网访问即可通过测验,并且每个测验结果都可以存储在SQLite中。您只需添加一个语句,检查用户是否连接到互联网。如果他已连接,则从SQLite获取所有数据,从您获得的数据中创建一个JSON对象,并使用Volley或Retrofit通过您应该创建的REST Api将此数据发送到Web服务器。如果您有任何疑问,请询问
答案 1 :(得分:-2)
好吧,如果你想保存你的数据,你需要SharedPreferences(https://developer.android.com/training/basics/data-storage/shared-preferences.html)。数据很少,因此浪费了数据库。相反,如果您需要在线数据库,则需要Firebase。这非常好,并为您提供其他工具,如崩溃工具,以了解您的应用程序在所有设备(https://firebase.google.com/docs/android/setup)中的崩溃。
您可以使用SharedPreferences保存问题,使用Firebase记录所有玩家的点数和名称。 SQLite只是本地的(https://stackoverflow.com/a/21599873/7339411),但不使用它,你可以使用SharedPreferences,它更容易,更快。