在包含的 LVL 示例应用程序中,许可证检查在 onCreate 期间触发。这意味着当我点击“购买应用程序”启动市场,然后立即点击返回按钮返回应用程序时,对话框消失并且没有执行另一次检查,留下一个完美可用的应用程序(至少直到该活动被终止,该过程重新开始)。
在 onResume() 期间触发许可证检查会是错误的形式,即使它可以解决这个问题?有更好的解决方案吗?
在包含的 LVL 示例应用程序中,许可证检查在 onCreate 期间触发。这意味着当我点击“购买应用程序”启动市场,然后立即点击返回按钮返回应用程序时,对话框消失并且没有执行另一次检查,留下一个完美可用的应用程序(至少直到该活动被终止,该过程重新开始)。
在 onResume() 期间触发许可证检查会是错误的形式,即使它可以解决这个问题?有更好的解决方案吗?
经过进一步的研究(和一些经验),似乎使用 onCreate() 检查许可证是可以的。如果您坚持使用对话框方法,将 finish() 添加到上市的函数将确保有人不能只是从市场“回到”应用程序并正常使用它。他们必须重新启动应用程序,然后再次触发许可证检查。
确保将对话框设置为可取消(false),否则他们可以直接点击后退按钮而不响应对话框选择。
蜿蜒曲折,
您是否finish();
在意图之前或之后放置:
finish();
Intent marketIntent = new Intent(Intent.ACTION_VIEW, Uri.parse(
"http://market.android.com/details?id=" + getPackageName()));
startActivity(marketIntent);
或者,
Intent marketIntent = new Intent(Intent.ACTION_VIEW, Uri.parse(
"http://market.android.com/details?id=" + getPackageName()));
startActivity(marketIntent);
finish();
谢谢。