gpt4 book ai didi

java - 如何限制Android应用程序只在某个时间段运行?

转载 作者:行者123 更新时间:2023-12-01 10:07:19 24 4
gpt4 key购买 nike

我想创建一个在特定时间间隔运行的应用程序。

[已编辑] 通过一定的时间间隔,我的意思是如果用户从 Play 商店下载应用程序。 他可以查看该应用程序的所有特性和功能。固定的时间段(假设仅 X 小时)。之后,我们可以设置任何类型的限制(任何 UI/导航限制,以便用户无法查看功能)。

[问题]

最简单且有效的方法是什么?就像我认为这些解决方案不起作用:

Calendar c = Calendar.getInstance(); 
int seconds = c.get(Calendar.SECOND);

或者

Time now = new Time();
now.setToNow();

施加限制的最佳方式是什么(应用程序端或服务器端,正如我在一些游戏应用程序中看到的那样,在服务器和应用程序之间进行同步,以便用户不能简单地更改时间和访问功能) )。

最佳答案

因此,如果您想在第一次运行时运行应用程序一段时间,则需要跟踪是否是第一次运行。因此,您可以设置一个首选项变量,以便它可以告诉您是否是第一次运行。

现在设置一个 CountDownTimer 并将其设置为运行一个小时,当计时器完成时,通过调用 finish() 来关闭 Activity。

SharedPreferences pref = getSharedPreferences("ApplicationTag", Activity.MODE_PRIVATE);

if (pref.contains("FIRST_LAUNCH")){
finish(); // As you want, it can't be used if the application launches second time.

} else {
// Set the first launch flag to true.
pref.edit.putBoolean("FIRST_LAUNCH", true).commit();

// Start the count down timer
new CountDownTimer(3600000, 1000) {

public void onTick(long millisRemaining) {
// Do nothing
}

public void onFinish() {
// Finish the Activity
finish();
}

}.start();

所以你可能会想,如果我在 Activity 之间切换会怎样。因此,在这种情况下,您需要创建一个 BaseActivity 类,该类将由应用程序中的其他 Activity 进行扩展。将 CountDownTimer 代码放在那里,并获取您所在的 Context 的引用,然后在计时器结束时调用 context.finish()

因此,如果您不想限制首次启动的用户,则需要在应用程序中以某种方式节省时间。当Activity完成时,您将在onDestroy函数中收到回调。因此,重写 onDestroy 函数并再次设置一些首选项,剩余时间以毫秒为单位。这样您就可以在应用程序启动时再次初始化计时器。

希望有帮助!

关于java - 如何限制Android应用程序只在某个时间段运行?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36363080/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com