簡體   English   中英

重新啟動應用程序時從一個活動獲取數據並存儲在另一個活動中

[英]Getting data from one activity and storing in another activity at app relaunch

我有一個游戲活動,用戶可以通過單擊按鈕獲得積分。 我要做的是將這些點傳遞給主要活動,即用戶看到的第一個活動。 因此,例如,用戶參加了游戲活動,獲得了一些積分並完全退出了應用程序。 當他們重新啟動應用程序時,他們可以看到他們在主要活動中獲得的總積分。

在主要活動中,我正在使用startActivityForResults從游戲活動中獲取數據,但我缺少一些東西。 我認為我需要在游戲活動中保存積分,以便在重新啟動應用程序時獲取存儲的積分。 我朝着正確的方向前進嗎? 如果可以的話,如何保存積分?

我的另一個想法是在游戲活動中,當用戶獲得積分時,積分立即發送到主要活動並保存在那里。 當用戶重新啟動應用程序時,主要活動不需要轉到游戲活動來找到點,它們將已經存儲在主要活動中。 這樣是一樣的,更好還是更壞?

我認為您要使用的是SharedPreferences 他們可以在所有活動中訪問,並且可以在應用重新啟動后保留數據。 在您的MainActivity中,您可以檢查onResume()是否有新數據/用戶在GameActivity中獲得(並保存了)新分數。

這是有關如何使用SharedPreferences 的指南 順便說一句。 不要被名稱所迷惑,您可以將各種東西與它們一起保存,而不僅僅是“首選項”。

您不需要為此使用startActivityForResult 最簡單的解決方案是將當前分數存儲在SharedPrefrences文件中,兩個Activity都可以訪問該文件。

class ActivityOne extends Activity {
    private void saveUserScore(int score) {
        SharedPreferences prefs = PreferenceManager.getDefaultSharedPreferences(this);
        prefs.edit().putInt("score", score).commit();
    }
}

class ActivityTwo extends Activity {
    private int getUserScore() {
        SharedPreferences prefs = PreferenceManager.getDefaultSharedPreferences(this);
        return prefs.getInt("score", 0);
    }
}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM