【问题标题】:Android, How to check trial period of application is expired?Android,如何检查应用程序的试用期是否已过期?
【发布时间】:2011-12-13 08:53:04
【问题描述】:

我的应用程序中有几个包,用户可以根据不同的价格选择每个包。在服务器端,我存储了一些客户端信息,例如设备 ID、Android ID 等。

根据用户选择的套餐,例如用户选择了2小时套餐,服务器发送给我过期时间,我将其存储在本地数据库中。

问题是检查试用期是否过期的最佳方法是什么?如果用户在 12:00 购买 2 小时计划,则到期时间为 14:00。我将 14:00 存储在数据库中,每次应用程序午餐时,我都会检查数据库。但问题是如果我们假设用户正在使用应用程序如何关闭应用程序或提示用户计划已过期?手机的时间是否被用户更改了怎么理解?

使用服务是最好的方式吗?你有什么建议?

=============== 更新:

我忘了说的一点是,由于我们办公室的一些限制,我只能访问我正在设计的三个活动,我不能问其他正在从事这个项目的开发人员,检查这个并检查或者使用这个变量。但是因为我正在处理主要活动,所以这个活动是唯一可以访问数据库的活动。

【问题讨论】:

    标签: android trialware time-trial


    【解决方案1】:

    您应该在SharedPreference 中维护一个标志,如果设置了该标志,您可以显示过期消息而不是正常活动。一旦您的期限到期,您可以使用AlarmManager 更新标志。

    这里有一些关于AlarmManagerSharedPreferences 的教程。

    【讨论】:

    • 谢谢亲爱的 Aki,我已经更新了上面的故事。如果我想使用 SharedPreferences,我认为在每个活动中我都必须检查它,由于上述更新,我无法访问所有活动,因为我的工作是开发通用框架,我以后不能问,请检查这个共享首选项。我需要的东西,我希望 AlarmManager 在时间到时运行我的 mainActivity。有可能吗?
    • 如果我的回答没有解决你的问题,你为什么接受?
    • 您的 UI 组件必须以某种方式被告知有关到期的信息。即使您使用提供过期信息的服务,您也必须将您的活动绑定到该服务才能获取此信息。
    • 如果您至少可以控制调用应用程序其他组件的主要活动,我的方法将起作用。如果您能多描述一下您的设计,也许我可以提供帮助。
    • 谢谢Aki,关于你的问题“如果我的回答不能解决你的问题,你为什么接受它?”,你给我的AlarmManager的链接对我很有用,我用Service检查到期时间。
    【解决方案2】:

    最简单和最好的方法是实现 BackupSharedPreferences。

    即使卸载并重新安装应用程序,也会保留首选项。

    只需将安装日期保存为首选项即可。

    理论如下:http://developer.android.com/reference/android/app/backup/SharedPreferencesBackupHelper.html

    以下是示例: Android SharedPreferences Backup Not Working

    :) 皮特

    【讨论】:

      猜你喜欢
      • 2010-10-26
      • 2017-05-31
      • 2018-02-11
      • 2019-07-23
      • 2021-12-21
      • 1970-01-01
      • 2014-06-12
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多