日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 运维知识 > Android >内容正文

Android

Android四大组件之间的交互,Android四大组件每个组件的作用?它们都可以开启多进程吗?...

發(fā)布時(shí)間:2023/12/20 Android 41 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Android四大组件之间的交互,Android四大组件每个组件的作用?它们都可以开启多进程吗?... 小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

1、Android四大組件:Activity , Service, BroadCaseReceiver , ContentProvider

2、詳細(xì)介紹四大組件

(1)Activity :

作用:Android程序與用戶交互的窗口、一個(gè)Activity通常是一個(gè)單獨(dú)的屏幕,上面可以顯示不同的控件。

生命周期:onCreate---->onStart---->onResume---->onPause---->onStop---->onDestrop

是否可以開啟多進(jìn)程:可以。在AndroidManifest中給Activity配置android:process屬性。

示例:

android:name=".ui.activity.NoticeOfficialActivity"android:process="com.shougang.shiftassistant1"android:screenOrientation="portrait"/>

上面圖一就是正常的activity,圖二就是多進(jìn)程的形式。這意味著當(dāng)前應(yīng)用進(jìn)程是com.shougang.shiftassistant時(shí),又新增了一個(gè)進(jìn)程,進(jìn)程名是com.shougang.shiftassistant1

(2)Service?服務(wù)

作用:一個(gè)長(zhǎng)期運(yùn)行在后臺(tái),不與用戶產(chǎn)生UI交互的程序,可以用戶執(zhí)行網(wǎng)絡(luò)請(qǐng)求,播放音樂,執(zhí)行文件讀寫操作等。

啟動(dòng)形式:startService(一直運(yùn)行在后臺(tái),即使啟動(dòng)service的組件已被銷毀)

bindService(有組件與其綁定時(shí)才會(huì)運(yùn)行)

生命周期:startService: onCreate----->onStartCommand----->onStop-------->onDestrop

bindService: onCreate----->onBind----->onUnbind------->onDestroy

是否可以開啟多進(jìn)程:可以。在AndroidManifest中給Activity配置android:process屬性

(3)BroadCaseReceiver??廣播接收者

作用:沒有用戶界面,它可以啟動(dòng)一個(gè)activity或service來啟動(dòng)它們收到的消息

廣播類型:普通廣播:?通過context.sendBroadCast(Intent??intent)發(fā)送消息

有序廣播:通過context.sendOrderedBroadCast(intent , receiverPermission)發(fā)送消息

異步廣播:通過context.sendStickyBroadcast(Intent myIntent)發(fā)送的

注意:生命周期只有十秒左右,如果在 onReceive() 內(nèi)做超過十秒內(nèi)的事情,就會(huì)報(bào)ANR(Application No Response) 程序無響應(yīng)的錯(cuò)誤信息,如果需要完成一項(xiàng)比較耗時(shí)的工作 , 應(yīng)該通過發(fā)送 Intent 給 Service, 由Service 來完成 . 這里不能使用子線程來解決 , 因?yàn)?BroadcastReceiver 的生命周期很短 , 子線程可能還沒有結(jié)束BroadcastReceiver 就先結(jié)束了。

是否可以開啟多進(jìn)程:可以。在AndroidManifest中給Activity配置android:process屬性

(4)ContentProvider??內(nèi)容提供者

作用:為應(yīng)用程序之間實(shí)現(xiàn)數(shù)據(jù)共享,實(shí)現(xiàn)統(tǒng)一接口。使用表的形式來對(duì)數(shù)據(jù)進(jìn)行封裝。

方法:1、 public boolean? onCreate():該方法在ContentProvider 創(chuàng)建后就會(huì)被調(diào)用,Android開機(jī)后,ContentProvider在其它應(yīng)用第一次訪問它時(shí)才會(huì)被創(chuàng)建。

2、 public? int? insert():該方法用于宮外部應(yīng)用為ContentProvider中添加數(shù)據(jù)使用。

3、 public? int? delete(Uri? uri,? String? selection,? String[]? selectionArgs):該方法用于供外部應(yīng)用從ContentProvider中刪除數(shù)據(jù)。

4、 public? int update(Uri? uri,? ContentValues? values,? String? selection,? String[]selectionArgs):該方法用于供外部應(yīng)用更新ContentProvider中的數(shù)據(jù)。

5、 public? cursor query(Uri? uri,? String[]? projection,? String? selection,? String[]selectionArgs, String sortOrder):該方法用于供外部應(yīng)用查詢ContentProvider中的數(shù)據(jù)。

Uri詳解:外界可以通過ContentResolver接口來訪問ContentProvider(內(nèi)容提供者)中的數(shù)據(jù)。但是在詳細(xì)了解ContentResolver之前先理解Uri。Uri 通用資源標(biāo)志符(Universal Resource Identifier)Uri代表要操作的數(shù)據(jù),Android中可用的每種資源 - 圖像、視頻片段等都可以用Uri來表示。

是否可以開啟多進(jìn)程:可以。在AndroidManifest中給Activity配置android:process屬性

總結(jié)

以上是生活随笔為你收集整理的Android四大组件之间的交互,Android四大组件每个组件的作用?它们都可以开启多进程吗?...的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。