androidshared
㈠ 如何在android中利用shared preferences存儲和讀取數據
1、任務目標
(1)掌握Android中SharedPreferences的使用方法。
2、任務陳述
(1)運行後,顯示如下界面,可以寫入和讀取SharedPreferences中的數據:
3、任務實施及所涉及知識技能講解
第一步:新建一個Android工程,命名為SharedPreferencesWrite。
第二步:在layout下添加一個使用線性布局的布局文件,命名為:main.xml。
布局文件源代碼:
http://www.worlc.com/blog2012.aspx?bid=19403636
第三步:在CopySharedPreferencesTest.java下聲明如下變數,並導入導入相關包(如何使用SharedPreferences存儲和讀取數據):
[java] view plain
SharedPreferences preferences;
Editor editor;
第四步:在onCreate方法中修改如下代碼:
[java] view plain
setContentView(R.layout.main);
第五步:在onCreate方法中實例化前面聲明的兩個對象,代碼如下:
[java] view plain
preferences = getSharedPreferences("crazyit", MODE_WORLD_READABLE);
editor = preferences.edit();
第六步:在onCreate方法中獲取兩個按鈕,代碼如下:
[java] view plain
Button read = (Button) findViewById(R.id.read);
Button write = (Button) findViewById(R.id.write);
第七步:在onCreate方法中為兩個按鈕添加監聽器,代碼如下:
[java] view plain
write.setOnClickListener(new OnClickListener()
{
@Override
public void onClick(View arg0)
{
SimpleDateFormat sdf = new SimpleDateFormat("yyyy年MM月dd日 "
+ "hh:mm:ss");
// 存入當前時間
editor.putString("time", sdf.format(new Date()));
// 存入一個隨機數
editor.putInt("random", (int) (Math.random() * 100));
// 提交所有存入的數據
editor.commit();
}
});
read.setOnClickListener(new OnClickListener()
{
@Override
public void onClick(View arg0)
{
//讀取字元串數據
String time = preferences.getString("time", null);
//讀取int類型的數據
int randNum = preferences.getInt("random", 0);
String result = time == null ? "您暫時還未寫入數據": "寫入時間為:" + time + "\n上次生成的隨機數為:" + randNum;
//使用Toast提示信息
Toast.makeText(SharedPreferencesTest.this ,
result , 5000).show();
}
});
第七步:點擊運行程序,程序源代碼如下:http://www.worlc.com/blog2012.aspx?bid=19403601
課堂練習:創建一個記錄應用程序使用次數的程序,當用戶第一次啟動應用程序時,系統創建SharedPrefererences,來記錄使用次數。用戶以後啟動應用程序時,系統先讀取SharedPrefererences中記錄的使用次數,然後將使用次數加1。
程序源代碼如下:
http://www.worlc.com/blog2012.aspx?bid=19403695
㈡ android開發sharedpreference中的數據怎樣修改
數據修改的好,只要找到對應的key,就可以修改value的數據,如下代碼:
/**
* 保存數據
*
* @param key
* @param data
*/
public void saveData(String key, Object data) {
String type = data.getClass().getSimpleName();
Editor editor = mSharedPreferences.edit();
if ("Integer".equals(type)) {
editor.putInt(key, (Integer) data);
} else if ("Boolean".equals(type)) {
editor.putBoolean(key, (Boolean) data);
} else if ("String".equals(type)) {
editor.putString(key, (String) data);
} else if ("Float".equals(type)) {
editor.putFloat(key, (Float) data);
} else if ("Long".equals(type)) {
editor.putLong(key, (Long) data);
}
editor.commit();
}
㈢ android sharedpreference 能put 集合嗎
不可以 sharedpreference 不適合保存數組或者集合
如果是數組或者集合的話,建議使用資料庫 sqlite android 自帶的
當然,你也可以將數組或者集合轉換成json字元串,再用sharedpreference 保存
做開發嘛,要靈活一點
㈣ 為什麼通過在android真機上不能獲取shared_prefs里的xml文件
SharedPreferences生成的xml數據,要使用SharedPreferences這個輕量級存儲器讀取。
SharedPreferences是Android平台上一個輕量級的存儲類,主要是保存一些常用的配置比如窗口狀態,一般在Activity中 重載窗口狀態onSaveInstanceState保存一般使用SharedPreferences完成,它提供了Android平台常規的Long長 整形、Int整形、String字元串型的保存。
SharedPreferences類似過去Windows系統上的ini配置文件,但是它分為多種許可權,可以全局共享訪問,android123提示最終是以xml方式來保存,整體效率來看不是特別的高,對於常規的輕量級而言比SQLite要好不少,如果真的存儲量不大可以考慮自己定義文件格式。xml 處理時Dalvik會通過自帶底層的本地XML Parser解析,比如XMLpull方式,這樣對於內存資源佔用比較好。
它的本質是基於XML文件存儲key-value鍵值對數據,通常用來存儲一些簡單的配置信息。其存儲位置在/data/data/< >/shared_prefs目錄下。
SharedPreferences對象本身只能獲取數據而不支持存儲和修改,存儲修改是通過Editor對象實現。實現SharedPreferences存儲的步驟如下:
一、根據Context獲取SharedPreferences對象
二、利用edit()方法獲取Editor對象。
三、通過Editor對象存儲key-value鍵值對數據。
四、通過commit()方法提交數據。
㈤ Android中如何設置SharedPreference文件名稱
獲取SharedPreference對象函數如下:
public abstract SharedPreferences getSharedPreferences (String name, int mode);
其中name代表名稱,mode代表文檔的操作許可權模式(私有,可讀,可寫)。因此只要在獲取時設置name即可。
(5)androidshared擴展閱讀
1、數據讀取:
通過SharedPreferences對象的鍵key可以獲取到對應key的鍵值。對於不同類型的鍵值有不同的函數:
getBoolean,getInt,getFloat,getLong.
public abstract String getString (String key, String defValue);
2、數據存入:
數據的存入是通過SharedPreferences對象的編輯器對象Editor來實現的。通過編輯器函數設置鍵值,然後調用commit()提交設置,寫入xml文件。
public abstract SharedPreferences.Editor edit ();
public abstract SharedPreferences.Editor putString (String key, String value);
public abstract boolean commit ();
㈥ android 如何檢測sharedperferences中保存的key v對
sharedperferences既然是初學就好好學,誰交給你用這個保存的?這個只能用於一些很少的變數保存,一般存儲關鍵變數,不會吧大串的字元往裡面塞,所以你這個項目是需要用資料庫的網頁鏈接來博客走一發,加油,小夥子,路還很長
㈦ 新特性與行為變更 -- Android 13(T OS,API Level:33)
無論應用採用何種目標 SDK 版本,Android 13(API 級別 33)都允許用戶從抽屜式通知欄中停止前台服務。這項新功能稱為 FGS 任務管理器,它會顯示當前正在運行前台服務的應用列表。此列表的標簽為使用中的應用。每個應用旁邊都有一個停止按鈕。
注意:當用戶按您應用旁邊的停止按鈕時,系統會停止您的整個應用,而不僅僅是正在運行的前台服務。
利用 JobScheler,應用可使用 JobInfo.Builder.setPrefetch() 將特定作業標記為「預提取」作業,這意味著,理想情況下這些作業應該在應用下一次啟動前提前一點運行,以提升用戶體驗。過去,JobScheler 僅使用該信號讓預提取作業有機會使用免費或多餘的數據。
在 Android 13 中,系統現在會嘗試確定應用下次啟動的時間,並根據該估算值運行預提取作業。應用應嘗試使用預提取作業來完成他們想要在下次應用啟動前完成的任何工作。
Android 13(API 級別 33)引入了電池資源利用率,它為系統提供了多種方法來更好地管理設備電池續航時間:
Android 13(API 級別 33)引入了新的運行時通知許可權:POST_NOTIFICATIONS。此更改有助於用戶專注於最重要的通知。
注意:與媒體會話以及自行管理通話的應用相關的通知不受此行為變更的影響。
如果您的應用允許用戶將敏感內容(例如密碼或信用卡信息)復制到剪貼板,則必須在調用 ClipboardManager#setPrimaryClip() 之前向 ClipData 的 ClipDescription 添加一個標志。添加此標志可阻止敏感內容出現在內容預覽中。
如需標記敏感內容,請向 ClipDescription 添加一個布爾型 extra。無論應用的目標 API 級別如何,所有應用都應這么做。
如果您的應用使用已廢棄的 android:sharedUserId 屬性,並且不再依賴於該屬性的功能,您可以將 android:sharedUserMaxSdkVersion 屬性設置為 32,這個新屬性會告知系統,您的應用不再依賴於共享用戶 ID。如果您的應用聲明 android:sharedUserMaxSdkVersion 並且首次安裝在搭載 Android 13 或更高版本的設備上,則應用的行為就像您從未定義過 android:sharedUserId 一樣。更新後的應用仍會使用現有的共享用戶 ID。
共享用戶 ID 會在軟體包管理器中導致具有不確定性的行為。您的應用應使用適當的通信機制(例如服務和 content provider),在共享組件之間實現互操作性。
注意:如果您已在清單中定義了 android:sharedUserId 屬性,請不要將其移除。這樣做會導致應用更新失敗。
如果用戶拒絕通知許可權,他們仍會在前台服務 (FGS) 任務管理器中看到與這些前台服務相關的通知,但不會在抽屜式通知欄中看到這些通知。
在以前的 Android 版本中,用戶需要向您的應用授予 ACCESS_FINE_LOCATION 許可權,應用才能完成與熱點相關的多個常見 Wi-Fi 用例、Wi-Fi 直連、Wi-Fi RTT 等。
由於用戶很難將位置信息許可權與 Wi-Fi 功能相關聯,因此 Android 13(API 級別 33)在 NEARBY_DEVICES 許可權組中引入了新的運行時許可權,適用於管理設備與附近 Wi-Fi 接入點連接情況的應用。此許可權 (NEARBY_WIFI_DEVICES) 可滿足這些 Wi-Fi 用例。
只要您的應用不會通過 Wi-Fi API 推導物理位置,那麼當您以 Android 13 或更高版本為目標平台並使用 Wi-Fi API 時,就可以請求 NEARBY_WIFI_DEVICES 而不是 ACCESS_FINE_LOCATION。
注意:僅當您調用 Wi-Fi API 時,此更改才會影響您的應用。
如果您的應用以 Android 13 為目標平台,您必須請求一個或多個新許可權,而不是 READ_EXTERNAL_STORAGE 和 WRITE_EXTERNAL_STORAGE 許可權。如果用戶之前向您的應用授予了 READ_EXTERNAL_STORAGE 許可權,系統會自動向您的應用授予每個新許可權。
注意:如果您的應用只需要訪問圖片、照片和視頻,請考慮使用照片選擇器,而不是聲明 READ_MEDIA_IMAGES和 READ_MEDIA_VIDEO 許可權。
注意:您無需再聲明 WRITE_EXTERNAL_STORAGE 許可權。
如果您的應用以 Android 13 為目標平台,並且在後台運行時需要訪問身體感測器信息,那麼除了現有的 BODY_SENSORS 許可權外,您還必須聲明新的 BODY_SENSORS_BACKGROUND 許可權。
當您的應用向以 Android 13 或更高版本為目標平台的其他應用的導出組件發送 intent 時,僅當該 intent 與接收應用中的 < intent-filter > 元素匹配時,系統才會傳送該 intent。不匹配的 intent 會被屏蔽。
為了幫助提高運行時接收器的安全性,Android 13 允許您指定您應用中的特定廣播接收器是否應被導出以及是否對設備上的其他應用可見。如果導出廣播接收器,其他應用將可以向您的應用發送不受保護的廣播。此導出配置在以 Android 13 或更高版本為目標平台的應用中可用,有助於防止一個主要的應用漏洞來源。
在以前的 Android 版本中,設備上的任何應用都可以向動態注冊的接收器發送不受保護的廣播,除非該接收器受簽名許可權的保護。
Android 13(API 級別 33)提供了全新的照片選擇器體驗。應用啟動照片選擇器時,用戶可選擇與應用分享特定圖片和視頻(如個人資料照片),而不是授予應用查看整個媒體庫的許可權。
照片選擇器可為用戶提供更好的隱私保護,因為您的應用無需聲明任何運行時許可權。此外,照片選擇器還為應用提供內置標准化界面,從而打造更一致的用戶體驗。
注意:現在,我們推薦使用照片選擇器來訪問用戶的照片和視頻。
Android 13(API 級別 33)在 NEARBY_DEVICES 許可權組中引入了一項新的運行時許可權,它適用於會管理設備與附近 Wi-Fi 接入點連接情況的應用。這些應用在調用多個不同的 Wi-Fi API 時必須聲明新的許可權 NEARBY_WIFI_DEVICES。此外,只要應用不會通過 Wi-Fi API 推導物理位置,那麼在以 Android 13 或更高版本為目標平台時,就無需聲明 ACCESS_FINE_LOCATION 許可權。
如果您的應用以 Android 13 為目標平台,您可以使用自動授予應用的 USE_EXACT_ALARM 許可權。不過,您的應用若要使用此許可權,必須至少滿足以下條件之一:
如果您的應用設置了精確鬧鍾,但不符合前面列表中顯示的任一情況,請改為繼續聲明 SCHEDULE_EXACT_ALARM 許可權,並為用戶拒絕授予您應用相應訪問許可權的情況做好准備。
從 Android 13 開始,應用可以撤消先前由系統或用戶授予的運行時許可權。此 API 可讓您的應用執行增強隱私權的任務,如下所示:
如需撤消特定運行時許可權,請將該許可權的名稱傳入 revokeSelfPermissionOnKill()。如需同時撤消一組運行時許可權,請將這組許可權的名稱傳入 revokeSelfPermissionsOnKill()。撤消是非同步發生的,會終止與您應用的 UID 相關聯的所有進程。
Android 13 可支持 APK 簽名方案 v3.1,此方案在現有的 APK 簽名方案 v3 的基礎上進行了改進,解決了 APK 簽名方案 v3 的一些已知問題。具體而言,v3.1 簽名方案允許應用在單個 APK 中同時支持原始簽名者和輪替簽名者。此外,該方案還支持 SDK 版本定位功能,這會允許輪替定位到更高版本的平台。
v3.1 簽名方案使用在 12L 或更低版本中無法識別的新分塊 ID。因此,平台會應用以下簽名者行為:
尚未輪替其簽名密鑰的應用無需執行任何其他操作。每當這些應用選擇輪替時,系統都會默認應用新的 v3.1 簽名方案。
㈧ android shared library已停用
android中的所有應用程序都無法禁用。
每一個模塊名稱必須惟一,且不含任何空格。構建系統在生成最終共享庫文件時,會將正確的前綴和後綴自動添加到您分配給LOCAL_MODULE的名稱。例如,上述示例會致使生成一個名為libhello-jni.so的庫。
若是模塊名稱的開頭已經是lib,則構建系統不會附加額外的前綴lib;而是按原樣採用模塊名稱,並添加.so擴展名。所以,好比原來名為libfoo.c的源文件仍會生成名為libfoo.so的共享對象文件。此行為是為了支持Android平台源文件從Android.mk文件生成的庫,全部這些庫的名稱都以lib開頭。
㈨ 求助:Android SharedPreference共享數據
最近也遇到這個問題了。我發現如此是可以解決的,希望可以幫到你!
在SharedPreference 對應的源程序和其他的要獲取對應SharedPreference 的地方getSharedPreferences的第二個參數都設置為Context.MODE_WORLD_READABLE|Context.MODE_WORLD_WRITEABLE|Context.MODE_MULTI_PROCESS這樣其他應用就可以同步獲取到更新以後的數據。還有就是每次用的SharedPreference 設置為局部變數。
㈩ android shared base是什麼應用
安卓共享應用庫 其漢語含義是:「(手機)安卓共享平台(庫)」。
就是安卓共享平台。 Android共享庫 是安卓的分享資料應用。