簡體   English   中英

如何在不打開數據的情況下將數據發送到另一個活動

[英]How to send data to another activity without opening it

我希望能夠在不打開活動 b 的情況下從活動 a 到活動 b 的數據,我希望能夠稍后返回活動 b 並查看顯示的數據我也希望數據(文本)保留,即使手機已關閉或應用程序已關閉。

我已經嘗試過使用意圖和共享偏好,但我看到的例子都要求我去活動 b。

您應該將數據存儲在其他地方 - 例如在 SQLite 數據庫、靜態全局模型或 SharedPreferences 中。 在活動 B 中對您的數據應用更改並在活動 A 的 onResume() 方法中讀取它。

編輯

您可以檢查如何從數據庫中保存和讀取數據,例如這里,我已經描述了如何創建數據庫和從傳感器保存數據。 要從數據庫讀取數據,請使用例如 rawQuery() - 在這里您可以找到一些詳細信息。

SharedPreferences 不一定要求您轉到活動 B。它基本上只是讓您輕松訪問文件,並且您可以從任何活動中執行此操作。 例如,在活動 A 中創建這些方法:

public String getPreference() {
    SharedPreferences sp = getSharedPreferences("preferenceName", 0);
    return sp.getString("preferenceKeyValue", "default value if no preference is found");
}
public void setPreference(String data) {
    SharedPreferences.Editor editor = getSharedPreferences("preferenceName", 0).edit();
    editor.putString("preferenceKeyValue", data).commit();
}

然后像這樣調用它們:

setPreference("data for activity B");
// later on...
String data = getPreference();

該示例使用字符串,但您可以保存以下任何數據:布爾值、浮點數、整數、長整數和字符串。

以下是根據您的具體情況修改的方法(更好的命名):

public String getActivityBData() {
    SharedPreferences sp = getSharedPreferences("Activity B Data", 0);
    return sp.getString("data", "There is no data yet!");
}
public void setActivityBData(String str) {
    SharedPreferences.Editor editor = getSharedPreferences("Activity B Data", 0).edit();
    editor.putString("data", str).commit();
}

您還可以將這些方法放在您的活動 B 類中並像這樣訪問它們。 保存的此數據並非特定於任何活動。

暫無
暫無

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

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