編輯:關於Android編程
Android操作系統使用SQLite數據庫,使用有兩種方法獲得數據庫對象:
1.獲取已經存在的數據庫
SQLiteDatabase dbbrndi=SQLiteDatabase.openDatabase("/sdcard/zhycheng.db3", null,SQLiteDatabase.OPEN_READONLY);
第一個String參數是數據庫在文件系統中的位置,第二個參數一般為null,第三個參數控制數據庫打開的方式。
這樣就獲得了數據庫對象。
2.自己創建數據庫
新建一個類,繼承SQLiteOpenHelper,添加未實現的方法
代碼如下
package your.zhycheng; import android.content.Context; import android.database.sqlite.SQLiteDatabase; import android.database.sqlite.SQLiteDatabase.CursorFactory; import android.database.sqlite.SQLiteOpenHelper; public class MyHelper extends SQLiteOpenHelper{ public MyHelper(Context context, String name) { this(context,name,1); } public MyHelper(Context context, String name,int version) { this(context,name,null,version); } public MyHelper(Context context, String name,//數據庫的名字 CursorFactory factory, int version) { super(context, name, factory, version); } @Override public void onCreate(SQLiteDatabase db) { db.execSQL("create table user(id int,name text)"); } @Override public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) { } }
獲得的數據庫位於/data/data/yourpackage/databases/zhycheng.db3
然後通過生成一個MyHelper類的對象,調用
MyHelper mh=new MyHelper(this,"zhycheng"); SQLiteDatabase db=mh.getReadableDatabase(); SQLiteDatabase db=mh.getWritableDatabase();
分別獲得只讀和可寫的數據庫。
獲得數據庫之後就可以進行數據庫操作有以下兩種方式操作數據庫
1.執行SQL語句
db.rawQuery(sql,Args) db.execSQL(sql, Args) db.execSQL(sql)
上面的sql是String類型的數據庫語言,Args是String數組。前面String中若有"?"則對應後面的值。
2.使用特定的方法
插入方法
MyHelper mhz=new MyHelper(this,"zhycheng",2); SQLiteDatabase dbz=mhz.getWritableDatabase(); ContentValues value=new ContentValues(); value.put("id", 1); value.put("name", "zhangyicheng"); dbz.insert("user", null, value);//第二個參數一定是null
刪除方法
MyHelper mhsc=new MyHelper(this,"zhycheng",2); SQLiteDatabase dbsc=mhsc.getWritableDatabase(); dbsc.delete("user", "id=?", new String[]{"1"}); dbsc.close();
改方法
MyHelper mhg=new MyHelper(this,"zhycheng",2); SQLiteDatabase dbg=mhg.getWritableDatabase(); ContentValues vs=new ContentValues(); vs.put("id", 1); dbg.update("user", vs, //set XXX=xx "id=?", new String[]{"4"}//id=4 );//
查方法
MyHelper mhc=new MyHelper(this,"zhycheng",2); SQLiteDatabase dbc=mhc.getReadableDatabase(); Cursor c=dbc.query("user",//表名字 new String[]{"id","name"},//查詢的列 "id=?", new String[]{"2"}, //where null, null, null); while(c.moveToNext()) { System.out.println(c.getString(c.getColumnIndex("name"))); }
最後有一個函數很有用
insert into user values(7,datetime(CURRENT_TIMESTAMP,'localtime'))
app的啟動方式: 1.)冷啟動 當啟動應用時,後台沒有該應用的進程,這時系統會重新創建一個新的進程分配給該應用,這個啟動方式就是冷啟動。冷啟動因為系
PS:用了一下個推.感覺實現第三方應用的推送功能還是比較簡單的.官方文檔寫的也非常的明確.學習內容:1.使用個推實現第三方應用的推送.所有的配置我最後會給一個源代碼,內部
當用戶在用一個App的時候,Activity會在生命周期不同的狀態下轉換。當用戶離開或重新回到一個Activity,我們可以在生命周期的回調函數中來寫一些相關的操作。比如
前言之前因為項目需求,其中使用到了圖片的單擊顯示取消,圖片平移縮放功能,昨天突然想再加上圖片的旋轉功能,在網上看了很多相關的例子,可是沒看到能同時實現我想要的