我不知道这是否可能,但我有几项活动,目前有两项活动,我有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();
}
答案 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);