編輯:Android開發實例
一、Android中四種數據存儲方式
1、SharePreferences: 一種輕量級的數據存儲方式,采用鍵值對的方式存儲。最終還是以文件的方式存儲。主要用了應用的配置,類型window中常見的*.ini文件。數據不共享,只能提供給一個應用使用。
2、SQLite:一個用於移動設備,小而強大的數據庫。數據可以共享。
3、文件存儲:就是文件操作咯。一般用了體積較大的文件,比如圖片。
4、ContentProvider: 提供一種各個應用之間數據共享機制。以URI的形式提供訪問地址。比如 content://contacts/people(有點REST的感覺)可以訪問系統中的聯系人列表。這裡的URI就可以用來構造Intent對象了。ContentProvider的數據存儲是多種多樣的,可以用數據庫,文件,甚至是存放在網絡的某個地方。
在Android中,注冊一個ContentProvider,不單單是注冊一個共享數據源,還包括數據源對應的Activity。所以Intent(action,Uri),由action和uri共同決定“目的地”。
示例代碼一:
1: btn.setOnClickListener(new View.OnClickListener() {
2: public void onClick(View view) {
3: Log.d(TAG, "startActivityForResult");
4: Intent i = new Intent(Intent.ACTION_VIEW, Uri.parse("content://contacts/people"));
5: startActivityForResult(i, PICK_REQUEST);
6: }
7: });
如上代碼,在任何應用任何地方,執行以上代碼,結果都是一樣的,就是現實聯系人列表,如下圖:
我們創建的ContentProvider,是一個獨立的類型,實際上跟Activity是沒有關系的,跟應用也沒有沒有。一旦在某個應用的 AndroidMainfest.xml進行配置,並將此應用安裝到Android系統中,activity就和ContentProvider進行關聯,而且這種關聯是多對多的關聯,所以切換Activity的時候時而有多個activity可以選擇。
我不經意產生如下疑問有待解決:
系統如何管理ContentProvider(Uri),以及它們對應的應用(Activity)之間的關系呢?
二、創建一個ContentProvider
1、創建屬性對象
示例代碼二:
1: package com.halzhang.android.provider;
2:
3: import android.net.Uri;
4: import android.provider.BaseColumns;
5:
6: /**
7: * 屬性對象
8: *
9: * @author 張漢國
10: */
11: public final class TodoList {
12:
13: public static final String AUTHORITY = "com.halzhang.android.provider.TodoList";
14:
15: private TodoList() {
16: }
17:
18: public static final class Todo implements BaseColumns {
19:
20: private Todo() {
21: }
22:
23: // content uri
24: public final static Uri CONTENT_URI = Uri.parse("content://" AUTHORITY "/todos");
25:
26: // mime類型
27: public final static String CONTENT_TYPE = "vnd.halzhang.cursor.dir/com.halzhang.android.todo";
28:
29: // 單個數據的MIME類型在android中是有Uri和MIME來指定唯一一個Content的
30: public final static String CONTENT_ITEM_TYPE = "vnd.halzhang.cursor.item/com.halzhang.android.todo";
31:
32: // 默認的排序方式
33: public final static String DEFAULT_SORT_ORDER = "modified DESC";
34:
35: public final static String TITLE = "title";
36:
37: public final static String CONTENT = "content";
38:
39: public final static String CREATED_DATE = "created";
40:
41: public final static String MODIFIED_DATE = "modified";
42: }
43:
44: }
轉自:http://www.cnblogs.com/halzhang/archive/2010/05/28/1746587.html
本文實例講述了Android中Market的Loading效果實現方法。分享給大家供大家參考。具體如下: 在Android中,要實現Loading效果,一般情況下
Android提供了許多方法來控制播放的音頻/視頻文件和流。其中該方法是通過一類稱為MediaPlayer。Android是提供MediaPlayer類訪問內置的媒體播放
Android提供了許多方法來控制播放的音頻/視頻文件和流。其中該方法是通過一類稱為MediaPlayer。Android是提供MediaPlayer類訪問內置的媒體播放
這篇文章主要為大家詳細介紹了Android系統模擬位置的使用方法,具有參考價值,感興趣的小伙伴們可以參考一下 本文為大家分享了Andro