1.首先在根目錄
allprojects
}}
2.引入依賴
implementation 'com.github.nashlegend:anypref:1.2.6'
3.新建bean類(anypref要儲存的字段一定要宣告成public)
@prefmodel("usermessage")
public class user
public string getusername()
public void setusername(string username)
public string getpassword()
public void setpassword(string password)
}
注:
@prefmodel:用於註解類,括號內的字串表示儲存此類的物件時對應的鍵,若不新增此註解則為類全名
@preffield:用於註解引數,括號內表示其對應的鍵,若不新增此註解則為字段全名,其中的numdef,booldef,strdef表示讀取不到時使用的預設值,如@preffield(numdef = 110),@preffield(booldef = true), @preffield(value = "setvaluewithspecifiedkey", strdef = )//預設值是[1,2,3,4]
@prefignore:新增此註解表示不儲存這個字段
@prefsub:此註解用於標識子物件,雖然sharedpreference不能儲存物件,但標註了此註解後可以訪問,
如
@prefsub(nullable = false)//nullable 表示取子物件的時候,子物件是否可以為 null,預設是 true
public subsample son1;
@prefarraylist:標註了@prefarraylist 的 arraylist 會被儲存,必須要有泛型資訊,且不能是基本型別的
@prefarraylist(nullable = true, itemnullable = true)//nullable 同上,itemnullable 表示列表中的資料是否可以為 null,預設為 true
public arraylistsamplearraylist;
4.在mainactivity中建立:
在oncreate()中:
anypref.init(this);
儲存:
user user = new user();
user.setusername(susername);
user.setpassword(spassword);
anypref.put(user);
//或者
anypref.put(user, "your prefname");第二個引數是自己定義的儲存此類的sharedpreferences name,不是prefmodel定義的那個name
讀取:
user user = anypref.get(user.class,"your prefname");
password.settext(user.getusername());
源**:
源**
分治 快排 快選
快排模板 include using namespace std const int n 1e5 10 int n,a n void quick sort int q,int l,int r quick sort q,l,j quick sort q,j 1,r intmain 快速選擇演算法 選擇...
快重傳和快恢復
比如傳送方傳送了1,2,3,4四個報文,2 3 4先後到達接收方,由於接收方收到的是三個失序的報文,就會連續發3個ack為1的報文,表示希望收到報文1。當傳送方接收到1個這樣的冗餘報文時,不採取任何措施,直到收到3個冗餘報文,才認定報文1丟失,此時馬上重傳報文1而不是等待1的超時重傳。這就是快重傳。...
快重傳與快恢復
快重傳演算法首先要求接收方每收到乙個失序的報文段後就立即發出重複確認 為的是使傳送方及早知道有報文段沒有到達對方 而不要等待自己傳送資料時才進行捎帶確認。快重傳示意圖如下 如上圖所示,接收方收到了 m1 和 m2 後都分別發出了確認。現假定接收方沒有收到 m3 但接著收到了 m4。顯然,接收方不能確...