如何计算两种不同活动的时间?

时间:2013-04-24 17:00:02

标签: java android

我不知道这是否可能,但我有几项活动,目前有两项活动,我有20分钟的时间限制让玩家完成比赛。问题是,他从一个活动开始,然后转到另一个活动,依此类推。如何使计时器在另一个活动中保持运行,并使其在textView中可见?

为minhaz编辑:

public void getTime(long value, String PREFERENCE_NAME){
        SharedPreferences myPrefs = mContext.getSharedPreferences(PREFERENCE_NAME, Context.MODE_PRIVATE);
        SharedPreferences.Editor prefsEditor = myPrefs.edit();
        prefsEditor.putLong("time", value);
        prefsEditor.commit();
    }

3 个答案:

答案 0 :(得分:1)

只需创建一个全局计时器类。

class Timer {
    private static long startTime = -1;

    public static void reset() {Timer.startTime = -1;}
    public static void initialize() {Timer.startTime = System.currentTimeMillis();}
    public static long getTimeMillis() {return System.currentTimeMillis() - startTime;}

    private Timer() {}
}

然后,通过导入此类(无论您将它放在何处),您都可以访问当前时间。

答案 1 :(得分:0)

如Lukas所述,扩展应用程序会很好。

您还可以使用存储计时器启动时间的首选项...

但我认为,使用计时器开始时间工作听起来是最好的方法。

答案 2 :(得分:0)

从一个活动启动计时器,当用户切换到下一个活动时,在Intent

中传递值
Intent intent=new Intent(Current.class, NextActivity.class);
intent.putExtra("time", timer_value);

在另一项活动中获取值为

time_value=intent.getLongExtra("time")

这样,当活动之间的延迟时,用户将获得一些缓冲时间,因为启动活动调用是异步的。您可以根据自己的要求致电finsh()或做其他事情。

如果您想限制启动应用程序的时间,那么扩展Application类也是一个很好的解决方案。但这不完全是总的上场时间。

<强>更新 对于存储数据,您可以根据需要使用持久性存储。现在,shared preference看起来像个好人。

存储数据

    SharedPreferences myPrefs = mContext.getSharedPreferences(PREFERENCE_NAME, Context.MODE_PRIVATE);
    SharedPreferences.Editor prefsEditor = myPrefs.edit();
    prefsEditor.putLong("time", value);
    prefsEditor.commit();

检索数据

SharedPreferences sharedPref = mContext.getSharedPreferences(PREFERENCE_NAME, Context.MODE_PRIVATE);
return sharedPref.getLong("time", 0);