標籤:tab and led xml檔案 version app ppi open 代碼塊
synchronized(同步):當它用來修飾一個方法或者一個代碼塊的時候,能夠保證在同一時刻最多隻有一個線程執行該段代碼。
一、當兩個並發線程訪問同一個對象object中的這個synchronized(this)同步代碼塊時,一個時間內只能有一個線程得到執行。另一個線程必須等待當前線程執行完這個代碼塊以後才能執行該代碼塊。
二、然而,當一個線程訪問object的一個synchronized(this)同步代碼塊時,另一個線程仍然可以訪問該object中的非synchronized(this)同步代碼塊。
三、尤其關鍵的是,當一個線程訪問object的一個synchronized(this)同步代碼塊時,其他線程對object中所有其它synchronized(this)同步代碼塊的訪問將被阻塞。
四、第三個例子同樣適用其它同步代碼塊。也就是說,當一個線程訪問object的一個synchronized(this)同步代碼塊時,它就獲得了這個object的對象鎖。結果,其它線程對該object對象所有同步代碼部分的訪問都被暫時阻塞。
五、以上規則對其它對象鎖同樣適用.
生產隨機數: float f = Math.random(); //{o,1)之間
Random random = new Random();int i = random.nextInt(100);//[0,100)之間
輕量級儲存工具:
sharedPreferences :儲存在手機裡面,具體路徑是data/data/你的包名/shared_prefs/儲存的檔案名稱.xml
儲存基於XML檔案儲存體的key-value索引值對資料
sharedPreferences = Context(Activity).getSharedPreferences(String name, int mode);//若檔案不存在,則建立
調用Context對象的getSharedPreferences()方法獲得的SharedPreferences對象可以被同一應用程式下的其他組件共用
調用Activity對象的getPreferences()方法獲得的SharedPreferences對象只能在該Activity中使用,這個就是Activity和Context的區別。
mode:
MODE_PRIVATE :只能是建立檔案的程式可以訪問
MODE_APPEND :檢查檔案,檔案存在則在檔案的末尾添加,不存在則建立檔案並在裡面添加內
MODE_WORLD_READABLE :所有程式都可以訪問檔案但是不能更改
MODE_WORLD_WRITEABLE :所有程式都可以改變檔案的內容
Editor edit = sharedPreferences.edit();edit.putInt(key, value);...
edit.commit();//edit.appiy();
提交方式有兩種:
commit(同步),apply(非同步).
區別:(1)commit 是直接將資料存到硬碟中的,而 apply 是將資料傳到記憶體中,繼而非同步到磁碟中,
如果有多個commit 並發提交資料的時候,只能排隊一次提交,這樣大大降低了效率;
(2)commit 會返回資訊,但是 apply 不會給出任何提示資訊,就算儲存失敗也不會提示。
sqlite: 輕量級資料庫
String dbName = "test.db";
SQLiteOpenHelper helper = new SQLiteOpenHelper(context, dbName, cursorfactory, version) {
@Override
public void onCreate(SQLiteDatabase db) {
db.execSQL("create table if not exists "+ tableName+"(Id integer primary key, Record text, OrderPrice integer, Country text)");
}
@Override
public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {
db.execSQL("drop table if exists "+ tableName);
onCreate(db);
}
};
SQLiteDatabase database = helper.getWritableDatabase();
database.beginTransaction();
//資料庫操作增刪改查
database.endTransaction();
database.close();
ormlite架構:
一、bean類,資料對象執行個體化
二、寫Helper類,繼承OrmLiteSqliteHelper類(在此類中完成的功能有:建立資料庫 db, 建立資料表 table,以及版本更新時建表)
三、Dao類,可用BaseDao<T>,對資料對象的增刪改查操作
android 資料存放區