android學習日記之provider,service,widget
所有文件及例項均為老師編寫歸納,版權均歸我的Android老師所有,如有侵權即刪
一、provider
ContentProvider:
資料共享(資料提供者)
1. ContentProvider如何實現資料共享
2. 如何操作ContentProvider
二、service
Service:
啟動方式:
1. 如何啟動Service:建立一個intent物件,指定啟動的service(顯式,隱式),隱式啟動只需要指定action。
2. 2種啟動方式:startService,bindService
3. 如何建立service:參考activity,先建立service繼承類,然後在清單檔案中宣告
StartService:
1. 啟動時建立一次,只要不手動回收service,該service和應用程序同時存在
2. 呼叫的是onStartCommand,每次呼叫會自動生成一個新的startId。
3. 通過StartService啟動的service,無法獲取service物件,無法直接互動
Ps:startService負責告訴系統我可以獨立執行
BindService:
1.啟動時建立一次,和啟動service的物件繫結,物件結束,service也結束
2.呼叫的是onBind方法,回傳一個實現IBinder介面的物件,此物件傳回ServiceConnection的回撥方法。
3.通過BindService啟動的物件,在啟動類和service類之間建立了一個IBinder介面的物件,它是類似於一個管道的物件,可以通過這個管道和service進行直接互動。
Ps:bindService負責和指定的service建立IBinder連線管道
三、widget
如何為應用新增一個小元件
1. 建立一個class繼承自AppWidgetProvider。(AppWidgetProvider實際上就是一個receiver)
2. 在清單檔案中,註冊這個widget,用receiver註冊
3. 在清單檔案中為這個receiver新增intent-filter屬性,必須宣告一個action,action必須是” android.appwidget.action.APPWIDGET_UPDATE”
4. 在清單檔案中為這個receiver新增meta-data屬性,在其中宣告2個屬性,android:name=” android.appwidget.provider”, android:resource="widget說明檔案"
5. widget說明檔案:用了描述widget。在res目錄下新建xml資料夾
6. 在新建的xml檔案中宣告widget屬性
android:minWidth="294dip"最小寬度
android:minHeight="72dip"最小高度
android:updatePeriodMillis="0"更新週期
android:initialLayout="@layout/album_appwidget"小元件佈局
7. 建立小元件佈局檔案(album_appwidget)
8. 在最初建立的class java檔案中,新增小元件的更新和使用者操作的實現