我正在使用共享首选项将呼叫者详细信息存储在我的应用程序中,如下所示。 每当有电话时,我都会保存呼叫者的以下详细信息。
sharedPrefCallLog = getSharedPreferences("CallLogPref", Context.MODE_PRIVATE);
editorCallLogPref = sharedPrefCallLog.edit();
editorCallLogPref.putString("name", Name);
editorCallLogPref.putString("num", Number);
editorCallLogPref.putString("city",City);
editorCallLogPref.apply();
对于第一个呼叫,一切正常。收到第二个呼叫时,第一个呼叫的详细信息将被清除并替换为第二个呼叫。我该如何保存一切?我想保存最近10次通话的详细信息吗?
我应该使用不同于sharedPref的其他方法吗?
任何建议都会很有帮助,谢谢:)
答案 0 :(得分:1)
如果仅需要保存10条通话记录(小数据集),则共享首选项就可以了。
您需要为记录分配唯一的密钥。
private void saveCallLog(final int callRecordID){
// key here is callRecordID
sharedPrefCallLog = getSharedPreferences("CallLogPref", Context.MODE_PRIVATE);
editorCallLogPref = sharedPrefCallLog.edit();
editorCallLogPref.putString("name_"+ callRecordID, Name);
editorCallLogPref.putString("num_"+ callRecordID, Number);
editorCallLogPref.putString("city_"+ callRecordID,City);
editorCallLogPref.apply();
}
要获取通话记录详细信息,请使用
private void getCallDetails(int callRecordID){
sharedPrefCallLog.getString("name_"+ callRecordID, null);
sharedPrefCallLog.getString("num_"+ callRecordID, null);
sharedPrefCallLog.getString("city_"+ callRecordID, null);
}