Android四大组件之间的交互,Android四大组件每个组件的作用?它们都可以开启多进程吗?...
1、Android四大組件:Activity , Service, BroadCaseReceiver , ContentProvider
2、詳細介紹四大組件
(1)Activity :
作用:Android程序與用戶交互的窗口、一個Activity通常是一個單獨的屏幕,上面可以顯示不同的控件。
生命周期:onCreate---->onStart---->onResume---->onPause---->onStop---->onDestrop
是否可以開啟多進程:可以。在AndroidManifest中給Activity配置android:process屬性。
示例:
android:name=".ui.activity.NoticeOfficialActivity"android:process="com.shougang.shiftassistant1"android:screenOrientation="portrait"/>
上面圖一就是正常的activity,圖二就是多進程的形式。這意味著當前應用進程是com.shougang.shiftassistant時,又新增了一個進程,進程名是com.shougang.shiftassistant1
(2)Service?服務
作用:一個長期運行在后臺,不與用戶產生UI交互的程序,可以用戶執行網絡請求,播放音樂,執行文件讀寫操作等。
啟動形式:startService(一直運行在后臺,即使啟動service的組件已被銷毀)
bindService(有組件與其綁定時才會運行)
生命周期:startService: onCreate----->onStartCommand----->onStop-------->onDestrop
bindService: onCreate----->onBind----->onUnbind------->onDestroy
是否可以開啟多進程:可以。在AndroidManifest中給Activity配置android:process屬性
(3)BroadCaseReceiver??廣播接收者
作用:沒有用戶界面,它可以啟動一個activity或service來啟動它們收到的消息
廣播類型:普通廣播:?通過context.sendBroadCast(Intent??intent)發送消息
有序廣播:通過context.sendOrderedBroadCast(intent , receiverPermission)發送消息
異步廣播:通過context.sendStickyBroadcast(Intent myIntent)發送的
注意:生命周期只有十秒左右,如果在 onReceive() 內做超過十秒內的事情,就會報ANR(Application No Response) 程序無響應的錯誤信息,如果需要完成一項比較耗時的工作 , 應該通過發送 Intent 給 Service, 由Service 來完成 . 這里不能使用子線程來解決 , 因為 BroadcastReceiver 的生命周期很短 , 子線程可能還沒有結束BroadcastReceiver 就先結束了。
是否可以開啟多進程:可以。在AndroidManifest中給Activity配置android:process屬性
(4)ContentProvider??內容提供者
作用:為應用程序之間實現數據共享,實現統一接口。使用表的形式來對數據進行封裝。
方法:1、 public boolean? onCreate():該方法在ContentProvider 創建后就會被調用,Android開機后,ContentProvider在其它應用第一次訪問它時才會被創建。
2、 public? int? insert():該方法用于宮外部應用為ContentProvider中添加數據使用。
3、 public? int? delete(Uri? uri,? String? selection,? String[]? selectionArgs):該方法用于供外部應用從ContentProvider中刪除數據。
4、 public? int update(Uri? uri,? ContentValues? values,? String? selection,? String[]selectionArgs):該方法用于供外部應用更新ContentProvider中的數據。
5、 public? cursor query(Uri? uri,? String[]? projection,? String? selection,? String[]selectionArgs, String sortOrder):該方法用于供外部應用查詢ContentProvider中的數據。
Uri詳解:外界可以通過ContentResolver接口來訪問ContentProvider(內容提供者)中的數據。但是在詳細了解ContentResolver之前先理解Uri。Uri 通用資源標志符(Universal Resource Identifier)Uri代表要操作的數據,Android中可用的每種資源 - 圖像、視頻片段等都可以用Uri來表示。
是否可以開啟多進程:可以。在AndroidManifest中給Activity配置android:process屬性
總結
以上是生活随笔為你收集整理的Android四大组件之间的交互,Android四大组件每个组件的作用?它们都可以开启多进程吗?...的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Web GIS多种方式发布动态地图服务及
- 下一篇: Android WebView常见问题及