我的应用程序中有几个包,用户可以根据不同的价格选择每个包。在服务器端,我存储了一些客户端的信息,如设备Id, Android Id等。
根据用户选择的包,例如用户选择了2小时计划,服务器发送给我过期时间,我将其存储在本地数据库中。
问题是检查试用期是否过期的最好方法是什么?如果用户在12:00购买2小时套餐,那么到期时间将在14:00。我将14:00存储在数据库中,每次应用程序启动时,我都会检查数据库。但问题是,如果我们假设用户正在使用应用程序如何关闭应用程序或提示用户计划已过期?如果用户更改了手机的时间,我该如何理解?
使用服务是最好的方法吗?你有什么建议?
==============更新:
我忘了说的一点是,由于我们办公室的一些限制,我只能访问我正在设计的三个活动,我不能要求参与这个项目的其他开发人员检查这个和检查那个或使用这个变量。但是因为我在主活动上工作,这个活动是唯一可以访问数据库的活动。
您应该在SharedPreference
中维护一个标志,如果设置了该标志,您可以显示过期消息而不是您的正常活动。一旦周期过期,您可以使用AlarmManager
更新标志。
下面是一些关于AlarmManager和SharedPreferences的教程
最简单和最好的方法是实现BackupSharedPreferences。
首选项被保留,即使应用程序被卸载和重新安装。
只需将安装日期保存为首选项,就可以开始了。
理论如下:http://developer.android.com/reference/android/app/backup/SharedPreferencesBackupHelper.html
示例如下:Android SharedPreferences Backup Not Working
:)皮特