2013-04-24 31 views
0

我不知道這是否可能,但我有幾個活動,現在有兩個活動,而且我有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

保持一個靜態變量在全球Timer類 – Zyerah 2013-04-24 17:01:08

+1

或者創建一個Singleton在它的遊戲狀態。 – Raymond 2013-04-24 17:06:50

+1

...或者擴展'Application'。 – 2013-04-24 17:07:19

回答

0

如前所述由盧卡斯,推廣應用將是很好。

你也可以使用存儲在該計時器開始的時間偏好...

但正與計時器的開始時間工作的聲音最好的方式,我想。

+0

我需要擴展Activity。 – marjanbaz 2013-04-24 17:10:15

+0

@marjanbaz您可以擴展Application類,然後從每個活動中獲取應用程序類以獲取全局狀態變量。 – 2013-04-24 17:13:39

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() {} 
} 

然後,通過導入這個類(無論你把它放在哪裏),你可以訪問當前時間。

+0

是否有可能用倒數計時器做到這一切? – marjanbaz 2013-04-24 17:20:41

+0

是的,看看你能否弄清楚。提示:這只是減法。 – Zyerah 2013-04-24 17:26:24

0
從一個活動

啓動計時器,當用戶切換到下一個通過內部的意圖

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); 
+0

我喜歡Intent的這個選項。但是當我的活動結束時如何保存timer_value? – marjanbaz 2013-04-24 20:44:36

+0

@marjanbaz已更新 – minhaz 2013-04-24 21:16:45

+0

這東西進入一個類或什麼?以及如何使用該類?看看我的原始文章編輯,是如何做到這一點? – marjanbaz 2013-04-24 21:47:02

相關問題