我应该如何计算玩家离开应用程序的时间?

时间:2017-10-19 07:09:02

标签: java android date

在我在Android Studio中制作的游戏中,我希望有一个随着时间的推移而侵蚀的对象。一旦物体被完全侵蚀,玩家就可以将其破坏以获得积分。我希望此时间值基于现实世界时间,以便在应用关闭时项目继续侵蚀。

实现这一目标的最佳方法是什么?我应该使用Date变量,还是可以使用更简单的东西?

2 个答案:

答案 0 :(得分:0)

您可以通过sharedprefrencesservice使用非常简单的方法,当应用程序被杀死时保存时间日期变量,当用户回到您的应用程序时,您可以检查您的值保存的密钥,如果它不为空,则将其与当前时间进行比较,并获得两者之间的差异。这就是你如何做到的。

答案 1 :(得分:0)

当对象开始侵蚀时,请节省时间:
long startTime = SystemClock.elapsedRealtime();

onPause()中,保存此时间:

public void onPause() {
    SharedPreferences.Editor editor = getSharedPreferences("myPrefs", MODE_PRIVATE).edit();
    editor.putLong("startTime", startTime );
    editor.commit();
    super.onPause();
}

onResume()中,获取已节省的时间并与当前时间进行比较:

public void onResume() {
    SharedPreferences prefs = getSharedPreferences("myPrefs", MODE_PRIVATE);
    long startTime =  prefs.getLong("startTime", 0);
    long elapsedTime = SystemClock.elapsedRealtime() - startTime;

    if (elapsedTime > EROTION_TIME) {
        // Voila !! The object has eroded.
    }
}