<!-- [if gte mso 9]><xml> <w:WordDocument> <w:View>Normal</w:View> <w:Zoom>0</w:Zoom> <w:TrackMoves/> <w:TrackFormatting/> <w:PunctuationKerning/> <w:ValidateAgainstSchemas/> <w:SaveIfXMLInvalid>false</w:SaveIfXMLInvalid> <w:IgnoreMixedContent>false</w:IgnoreMixedContent> <w:AlwaysShowPlaceholderText>false</w:AlwaysShowPlaceholderText> <w:DoNotPromoteQF/> <w:LidThemeOther>EN-US</w:LidThemeOther> <w:LidThemeAsian>ZH-CN</w:LidThemeAsian> <w:LidThemeComplexScript>X-NONE</w:LidThemeComplexScript> <w:Compatibility> <w:BreakWrappedTables/> <w:SnapToGridInCell/> <w:WrapTextWithPunct/> <w:UseAsianBreakRules/> <w:DontGrowAutofit/> <w:SplitPgBreakAndParaMark/> <w:DontVertAlignCellWithSp/> <w:DontBreakConstrainedForcedTables/> <w:DontVertAlignInTxbx/> <w:Word11KerningPairs/> <w:CachedColBalance/> <w:UseFELayout/> </w:Compatibility> <m:mathPr> <m:mathFont m:val="Cambria Math"/> <m:brkBin m:val="before"/> <m:brkBinSub m:val="&#45;-"/> <m:smallFrac m:val="off"/> <m:dispDef/> <m:lMargin m:val="0"/> <m:rMargin m:val="0"/> <m:defJc m:val="centerGroup"/> <m:wrapIndent m:val="1440"/> <m:intLim m:val="subSup"/> <m:naryLim m:val="undOvr"/> </m:mathPr></w:WordDocument> </xml><![endif]--><!-- [if gte mso 9]><xml> <w:LatentStyles DefLockedState="false" DefUnhideWhenUsed="true" DefSemiHidden="true" DefQFormat="false" DefPriority="99" LatentStyleCount="267"> <w:LsdException Locked="false" Priority="0" SemiHidden="false" UnhideWhenUsed="false" QFormat="true" Name="Normal"/> <w:LsdException Locked="false" Priority="9" SemiHidden="false" UnhideWhenUsed="false" QFormat="true" Name="heading 1"/> <w:LsdException Locked="false" Priority="9" QFormat="true" Name="heading 2"/> <w:LsdException Locked="false" Priority="9" QFormat="true" Name="heading 3"/> <w:LsdException Locked="false" Priority="9" QFormat="true" Name="heading 4"/> <w:LsdException Locked="false" Priority="9" QFormat="true" Name="heading 5"/> <w:LsdException Locked="false" Priority="9" QFormat="true" Name="heading 6"/> <w:LsdException Locked="false" Priority="9" QFormat="true" Name="heading 7"/> <w:LsdException Locked="false" Priority="9" QFormat="true" Name="heading 8"/> <w:LsdException Locked="false" Priority="9" QFormat="true" Name="heading 9"/> <w:LsdException Locked="false" Priority="39" Name="toc 1"/> <w:LsdException Locked="false" Priority="39" Name="toc 2"/> <w:LsdException Locked="false" Priority="39" Name="toc 3"/> <w:LsdException Locked="false" Priority="39" Name="toc 4"/> <w:LsdException Locked="false" Priority="39" Name="toc 5"/> <w:LsdException Locked="false" Priority="39" Name="toc 6"/> <w:LsdException Locked="false" Priority="39" Name="toc 7"/> <w:LsdException Locked="false" Priority="39" Name="toc 8"/> <w:LsdException Locked="false" Priority="39" Name="toc 9"/> <w:LsdException Locked="false" Priority="35" QFormat="true" Name="caption"/> <w:LsdException Locked="false" Priority="10" SemiHidden="false" UnhideWhenUsed="false" QFormat="true" Name="Title"/> <w:LsdException Locked="false" Priority="1" Name="Default Paragraph Font"/> <w:LsdException Locked="false" Priority="11" SemiHidden="false" UnhideWhenUsed="false" QFormat="true" Name="Subtitle"/> <w:LsdException Locked="false" Priority="22" SemiHidden="false" UnhideWhenUsed="false" QFormat="true" Name="Strong"/> <w:LsdException Locked="false" Priority="20" SemiHidden="false" UnhideWhenUsed="false" QFormat="true" Name="Emphasis"/> <w:LsdException Locked="false" Priority="59" SemiHidden="false" UnhideWhenUsed="false" Name="Table Grid"/> <w:LsdException Locked="false" UnhideWhenUsed="false" Name="Placeholder Text"/> <w:LsdException Locked="false" Priority="1" SemiHidden="false" UnhideWhenUsed="false" QFormat="true" Name="No Spacing"/> <w:LsdException Locked="false" Priority="60" SemiHidden="false" UnhideWhenUsed="false" Name="Light Shading"/> <w:LsdException Locked="false" Priority="61" SemiHidden="false" UnhideWhenUsed="false" Name="Light List"/> <w:LsdException Locked="false" Priority="62" SemiHidden="false" UnhideWhenUsed="false" Name="Light Grid"/> <w:LsdException Locked="false" Priority="63" SemiHidden="false" UnhideWhenUsed="false" Name="Medium Shading 1"/> <w:LsdException Locked="false" Priority="64" SemiHidden="false" UnhideWhenUsed="false" Name="Medium Shading 2"/> <w:LsdException Locked="false" Priority="65" SemiHidden="false" UnhideWhenUsed="false" Name="Medium List 1"/> <w:LsdException Locked="false" Priority="66" SemiHidden="false" UnhideWhenUsed="false" Name="Medium List 2"/> <w:LsdException Locked="false" Priority="67" SemiHidden="false" UnhideWhenUsed="false" Name="Medium Grid 1"/> <w:LsdException Locked="false" Priority="68" SemiHidden="false" UnhideWhenUsed="false" Name="Medium Grid 2"/> <w:LsdException Locked="false" Priority="69" SemiHidden="false" UnhideWhenUsed="false" Name="Medium Grid 3"/> <w:LsdException Locked="false" Priority="70" SemiHidden="false" UnhideWhenUsed="false" Name="Dark List"/> <w:LsdException Locked="false" Priority="71" SemiHidden="false" UnhideWhenUsed="false" Name="Colorful Shading"/> <w:LsdException Locked="false" Priority="72" SemiHidden="false" UnhideWhenUsed="false" Name="Colorful List"/> <w:LsdException Locked="false" Priority="73" SemiHidden="false" UnhideWhenUsed="false" Name="Colorful Grid"/> <w:LsdException Locked="false" Priority="60" SemiHidden="false" UnhideWhenUsed="false" Name="Light Shading Accent 1"/> <w:LsdException Locked="false" Priority="61" SemiHidden="false" UnhideWhenUsed="false" Name="Light List Accent 1"/> <w:LsdException Locked="false" Priority="62" SemiHidden="false" UnhideWhenUsed="false" Name="Light Grid Accent 1"/> <w:LsdException Locked="false" Priority="63" SemiHidden="false" UnhideWhenUsed="false" Name="Medium Shading 1 Accent 1"/> <w:LsdException Locked="false" Priority="64" SemiHidden="false" UnhideWhenUsed="false" Name="Medium Shading 2 Accent 1"/> <w:LsdException Locked="false" Priority="65" SemiHidden="false" UnhideWhenUsed="false" Name="Medium List 1 Accent 1"/> <w:LsdException Locked="false" UnhideWhenUsed="false" Name="Revision"/> <w:LsdException Locked="false" Priority="34" SemiHidden="false" UnhideWhenUsed="false" QFormat="true" Name="List Paragraph"/> <w:LsdException Locked="false" Priority="29" SemiHidden="false" UnhideWhenUsed="false" QFormat="true" Name="Quote"/> <w:LsdException Locked="false" Priority="30" SemiHidden="false" UnhideWhenUsed="false" QFormat="true" Name="Intense Quote"/> <w:LsdException Locked="false" Priority="66" SemiHidden="false" UnhideWhenUsed="false" Name="Medium List 2 Accent 1"/> <w:LsdException Locked="false" Priority="67" SemiHidden="false" UnhideWhenUsed="false" Name="Medium Grid 1 Accent 1"/> <w:LsdException Locked="false" Priority="68" SemiHidden="false" UnhideWhenUsed="false" Name="Medium Grid 2 Accent 1"/> <w:LsdException Locked="false" Priority="69" SemiHidden="false" UnhideWhenUsed="false" Name="Medium Grid 3 Accent 1"/> <w:LsdException Locked="false" Priority="70" SemiHidden="false" UnhideWhenUsed="false" Name="Dark List Accent 1"/> <w:LsdException Locked="false" Priority="71" SemiHidden="false" UnhideWhenUsed="false" Name="Colorful Shading Accent 1"/> <w:LsdException Locked="false" Priority="72" SemiHidden="false" UnhideWhenUsed="false" Name="Colorful List Accent 1"/> <w:LsdException Locked="false" Priority="73" SemiHidden="false" UnhideWhenUsed="false" Name="Colorful Grid Accent 1"/> <w:LsdException Locked="false" Priority="60" SemiHidden="false" UnhideWhenUsed="false" Name="Light Shading Accent 2"/> <w:LsdException Locked="false" Priority="61" SemiHidden="false" UnhideWhenUsed="false" Name="Light List Accent 2"/> <w:LsdException Locked="false" Priority="62" SemiHidden="false" UnhideWhenUsed="false" Name="Light Grid Accent 2"/> <w:LsdException Locked="false" Priority="63" SemiHidden="false" UnhideWhenUsed="false" Name="Medium Shading 1 Accent 2"/> <w:LsdException Locked="false" Priority="64" SemiHidden="false" UnhideWhenUsed="false" Name="Medium Shading 2 Accent 2"/> <w:LsdException Locked="false" Priority="65" SemiHidden="false" UnhideWhenUsed="false" Name="Medium List 1 Accent 2"/> <w:LsdException Locked="false" Priority="66" SemiHidden="false" UnhideWhenUsed="false" Name="Medium List 2 Accent 2"/> <w:LsdException Locked="false" Priority="67" SemiHidden="false" UnhideWhenUsed="false" Name="Medium Grid 1 Accent 2"/> <w:LsdException Locked="false" Priority="68" SemiHidden="false" UnhideWhenUsed="false" Name="Medium Grid 2 Accent 2"/> <w:LsdException Locked="false" Priority="69" SemiHidden="false" UnhideWhenUsed="false" Name="Medium Grid 3 Accent 2"/> <w:LsdException Locked="false" Priority="70" SemiHidden="false" UnhideWhenUsed="false" Name="Dark List Accent 2"/> <w:LsdException Locked="false" Priority="71" SemiHidden="false" UnhideWhenUsed="false" Name="Colorful Shading Accent 2"/> <w:LsdException Locked="false" Priority="72" SemiHidden="false" UnhideWhenUsed="false" Name="Colorful List Accent 2"/> <w:LsdException Locked="false" Priority="73" SemiHidden="false" UnhideWhenUsed="false" Name="Colorful Grid Accent 2"/> <w:LsdException Locked="false" Priority="60" SemiHidden="false" UnhideWhenUsed="false" Name="Light Shading Accent 3"/> <w:LsdException Locked="false" Priority="61" SemiHidden="false" UnhideWhenUsed="false" Name="Light List Accent 3"/> <w:LsdException Locked="false" Priority="62" SemiHidden="false" UnhideWhenUsed="false" Name="Light Grid Accent 3"/> <w:LsdException Locked="false" Priority="63" SemiHidden="false" UnhideWhenUsed="false" Name="Medium Shading 1 Accent 3"/> <w:LsdException Locked="false" Priority="64" SemiHidden="false" UnhideWhenUsed="false" Name="Medium Shading 2 Accent 3"/> <w:LsdException Locked="false" Priority="65" SemiHidden="false" UnhideWhenUsed="false" Name="Medium List 1 Accent 3"/> <w:LsdException Locked="false" Priority="66" SemiHidden="false" UnhideWhenUsed="false" Name="Medium List 2 Accent 3"/> <w:LsdException Locked="false" Priority="67" SemiHidden="false" UnhideWhenUsed="false" Name="Medium Grid 1 Accent 3"/> <w:LsdException Locked="false" Priority="68" SemiHidden="false" UnhideWhenUsed="false" Name="Medium Grid 2 Accent 3"/> <w:LsdException Locked="false" Priority="69" SemiHidden="false" UnhideWhenUsed="false" Name="Medium Grid 3 Accent 3"/> <w:LsdException Locked="false" Priority="70" SemiHidden="false" UnhideWhenUsed="false" Name="Dark List Accent 3"/> <w:LsdException Locked="false" Priority="71" SemiHidden="false" UnhideWhenUsed="false" Name="Colorful Shading Accent 3"/> <w:LsdException Locked="false" Priority="72" SemiHidden="false" UnhideWhenUsed="false" Name="Colorful List Accent 3"/> <w:LsdException Locked="false" Priority="73" SemiHidden="false" UnhideWhenUsed="false" Name="Colorful Grid Accent 3"/> <w:LsdException Locked="false" Priority="60" SemiHidden="false" UnhideWhenUsed="false" Name="Light Shading Accent 4"/> <w:LsdException Locked="false" Priority="61" SemiHidden="false" UnhideWhenUsed="false" Name="Light List Accent 4"/> <w:LsdException Locked="false" Priority="62" SemiHidden="false" UnhideWhenUsed="false" Name="Light Grid Accent 4"/> <w:LsdException Locked="false" Priority="63" SemiHidden="false" UnhideWhenUsed="false" Name="Medium Shading 1 Accent 4"/> <w:LsdException Locked="false" Priority="64" SemiHidden="false" UnhideWhenUsed="false" Name="Medium Shading 2 Accent 4"/> <w:LsdException Locked="false" Priority="65" SemiHidden="false" UnhideWhenUsed="false" Name="Medium List 1 Accent 4"/> <w:LsdException Locked="false" Priority="66" SemiHidden="false" UnhideWhenUsed="false" Name="Medium List 2 Accent 4"/> <w:LsdException Locked="false" Priority="67" SemiHidden="false" UnhideWhenUsed="false" Name="Medium Grid 1 Accent 4"/> <w:LsdException Locked="false" Priority="68" SemiHidden="false" UnhideWhenUsed="false" Name="Medium Grid 2 Accent 4"/> <w:LsdException Locked="false" Priority="69" SemiHidden="false" UnhideWhenUsed="false" Name="Medium Grid 3 Accent 4"/> <w:LsdException Locked="false" Priority="70" SemiHidden="false" UnhideWhenUsed="false" Name="Dark List Accent 4"/> <w:LsdException Locked="false" Priority="71" SemiHidden="false" UnhideWhenUsed="false" Name="Colorful Shading Accent 4"/> <w:LsdException Locked="false" Priority="72" SemiHidden="false" UnhideWhenUsed="false" Name="Colorful List Accent 4"/> <w:LsdException Locked="false" Priority="73" SemiHidden="false" UnhideWhenUsed="false" Name="Colorful Grid Accent 4"/> <w:LsdException Locked="false" Priority="60" SemiHidden="false" UnhideWhenUsed="false" Name="Light Shading Accent 5"/> <w:LsdException Locked="false" Priority="61" SemiHidden="false" UnhideWhenUsed="false" Name="Light List Accent 5"/> <w:LsdException Locked="false" Priority="62" SemiHidden="false" UnhideWhenUsed="false" Name="Light Grid Accent 5"/> <w:LsdException Locked="false" Priority="63" SemiHidden="false" UnhideWhenUsed="false" Name="Medium Shading 1 Accent 5"/> <w:LsdException Locked="false" Priority="64" SemiHidden="false" UnhideWhenUsed="false" Name="Medium Shading 2 Accent 5"/> <w:LsdException Locked="false" Priority="65" SemiHidden="false" UnhideWhenUsed="false" Name="Medium List 1 Accent 5"/> <w:LsdException Locked="false" Priority="66" SemiHidden="false" UnhideWhenUsed="false" Name="Medium List 2 Accent 5"/> <w:LsdException Locked="false" Priority="67" SemiHidden="false" UnhideWhenUsed="false" Name="Medium Grid 1 Accent 5"/> <w:LsdException Locked="false" Priority="68" SemiHidden="false" UnhideWhenUsed="false" Name="Medium Grid 2 Accent 5"/> <w:LsdException Locked="false" Priority="69" SemiHidden="false" UnhideWhenUsed="false" Name="Medium Grid 3 Accent 5"/> <w:LsdException Locked="false" Priority="70" SemiHidden="false" UnhideWhenUsed="false" Name="Dark List Accent 5"/> <w:LsdException Locked="false" Priority="71" SemiHidden="false" UnhideWhenUsed="false" Name="Colorful Shading Accent 5"/> <w:LsdException Locked="false" Priority="72" SemiHidden="false" UnhideWhenUsed="false" Name="Colorful List Accent 5"/> <w:LsdException Locked="false" Priority="73" SemiHidden="false" UnhideWhenUsed="false" Name="Colorful Grid Accent 5"/> <w:LsdException Locked="false" Priority="60" SemiHidden="false" UnhideWhenUsed="false" Name="Light Shading Accent 6"/> <w:LsdException Locked="false" Priority="61" SemiHidden="false" UnhideWhenUsed="false" Name="Light List Accent 6"/> <w:LsdException Locked="false" Priority="62" SemiHidden="false" UnhideWhenUsed="false" Name="Light Grid Accent 6"/> <w:LsdException Locked="false" Priority="63" SemiHidden="false" UnhideWhenUsed="false" Name="Medium Shading 1 Accent 6"/> <w:LsdException Locked="false" Priority="64" SemiHidden="false" UnhideWhenUsed="false" Name="Medium Shading 2 Accent 6"/> <w:LsdException Locked="false" Priority="65" SemiHidden="false" UnhideWhenUsed="false" Name="Medium List 1 Accent 6"/> <w:LsdException Locked="false" Priority="66" SemiHidden="false" UnhideWhenUsed="false" Name="Medium List 2 Accent 6"/> <w:LsdException Locked="false" Priority="67" SemiHidden="false" UnhideWhenUsed="false" Name="Medium Grid 1 Accent 6"/> <w:LsdException Locked="false" Priority="68" SemiHidden="false" UnhideWhenUsed="false" Name="Medium Grid 2 Accent 6"/> <w:LsdException Locked="false" Priority="69" SemiHidden="false" UnhideWhenUsed="false" Name="Medium Grid 3 Accent 6"/> <w:LsdException Locked="false" Priority="70" SemiHidden="false" UnhideWhenUsed="false" Name="Dark List Accent 6"/> <w:LsdException Locked="false" Priority="71" SemiHidden="false" UnhideWhenUsed="false" Name="Colorful Shading Accent 6"/> <w:LsdException Locked="false" Priority="72" SemiHidden="false" UnhideWhenUsed="false" Name="Colorful List Accent 6"/> <w:LsdException Locked="false" Priority="73" SemiHidden="false" UnhideWhenUsed="false" Name="Colorful Grid Accent 6"/> <w:LsdException Locked="false" Priority="19" SemiHidden="false" UnhideWhenUsed="false" QFormat="true" Name="Subtle Emphasis"/> <w:LsdException Locked="false" Priority="21" SemiHidden="false" UnhideWhenUsed="false" QFormat="true" Name="Intense Emphasis"/> <w:LsdException Locked="false" Priority="31" SemiHidden="false" UnhideWhenUsed="false" QFormat="true" Name="Subtle Reference"/> <w:LsdException Locked="false" Priority="32" SemiHidden="false" UnhideWhenUsed="false" QFormat="true" Name="Intense Reference"/> <w:LsdException Locked="false" Priority="33" SemiHidden="false" UnhideWhenUsed="false" QFormat="true" Name="Book Title"/> <w:LsdException Locked="false" Priority="37" Name="Bibliography"/> <w:LsdException Locked="false" Priority="39" QFormat="true" Name="TOC Heading"/> </w:LatentStyles> </xml><![endif]--><!-- [if gte mso 10]> <style> /* Style Definitions */ table.MsoNormalTable {mso-style-name:鏅€氳〃鏍? mso-tstyle-rowband-size:0; mso-tstyle-colband-size:0; mso-style-noshow:yes; mso-style-priority:99; mso-style-qformat:yes; mso-style-parent:""; mso-padding-alt:0cm 5.4pt 0cm 5.4pt; mso-para-margin-top:0cm; mso-para-margin-right:0cm; mso-para-margin-bottom:10.0pt; mso-para-margin-left:0cm; line-height:115%; mso-pagination:widow-orphan; font-size:11.0pt; font-family:"Calibri","sans-serif"; mso-ascii-font-family:Calibri; mso-ascii-theme-font:minor-latin; mso-hansi-font-family:Calibri; mso-hansi-theme-font:minor-latin;} </style> <![endif]-->

Processes and Threads

褰撲竴涓簲鐢ㄧ粍浠跺惎鍔ㄤ簡锛屽苟涓旇搴旂敤娌℃湁鍒殑姝e湪杩愯鐨勭粍浠讹紝 Android绯荤粺浼氫负杩欎釜搴旂敤鍚姩涓€涓?/span> Linux杩涚▼锛屽皢鍏舵斁鍏ヤ竴涓嚎绋嬩腑杩愯銆傞粯璁ょ殑锛屽悓涓€涓簲鐢ㄧ殑鎵€鏈夌粍浠惰繍琛屽湪鍚屼竴涓繘绋嬩笌绾跨▼涓?/span> (涓荤嚎绋?/span> main thread)銆傚綋涓€涓簲鐢ㄧ粍浠跺惎鍔ㄦ椂锛屽凡缁忔湁涓€涓搴旂敤鐨勮繘绋嬪瓨鍦ㄤ簡 (瀛樺湪璇ュ簲鐢ㄧ殑鍒殑缁勪欢 )锛岄偅涔堣繖涓粍浠跺氨鍦ㄨ繖涓繘绋嬩腑鍚姩锛屽苟涓斾娇鐢ㄧ浉褰撶殑绾跨▼鍘绘墽琛屻€傜劧鑰岋紝浣犲彲浠ヨ浣犵殑搴旂敤鐨勪笉鍚岀粍浠惰繍琛屼簬涓嶅悓鐨勮繘绋嬩腑锛屽苟涓斾綘鍙互涓轰换浣曡繘绋嬪垱寤洪檮鍔犺繘绋嬨€?/span>

杩涚▼ (Processes)

榛樿鐨勶紝鍚屼竴涓簲鐢ㄧ殑鎵€鏈夌粍浠惰繍琛屼簬鍚屼竴涓繘绋嬩腑锛屽苟涓旂粷澶у鏁板簲鐢ㄤ笉搴旇鏀瑰彉杩欎釜銆傜劧鑰岋紝濡傛灉浣犳兂瑕佹帶鍒朵綘鐨勪竴涓‘瀹氱殑搴旂敤缁勪欢灞炰簬鏌愪竴涓繘绋嬶紝浣犲彲浠ュ湪 manifest 鏂囦欢涓仛鍒拌繖浠朵簨鎯呫€?/span>

Manifest鏂囦欢涓烘瘡涓€涓粍浠?/span> (<activity>,<service>,<recevier>,<provider>)鐨勫叆鍙f彁渚涗簡涓€涓?/span> android:process鐨勫睘鎬х敤浠ユ寚瀹氳繖涓粍浠跺簲璇ュ湪鍝竴涓繘绋嬩腑杩愯銆備綘鍙互璁剧疆杩欎釜灞炴€т娇鐢ㄦ瘡涓粍浠跺湪浠栬嚜宸辩殑杩涚▼涓繍琛岋紝鎴栬€呬娇涓€浜涚粍浠朵韩鐢ㄤ竴涓繘绋嬶紝鑰屽埆鐨勭粍浠朵笉鍙互銆備綘涔熷彲浠ヨ缃?/span> android:process灞炴€э紝浣挎潵鑷笉鍚岀殑搴旂敤鐨勭粍浠跺湪鍚屼竴涓繘绋嬩腑杩愯锛屽簲鐢ㄧ▼搴忓叡浜悓涓€涓?/span> Linux鐨?/span> user ID,鐩稿悓鐨勭鍚嶈璇併€?/span>

<application>鍏冪礌涔熸敮鎸?/span> android:process灞炴€э紝鐢ㄤ互璁剧疆鎵€鏈夌粍浠剁殑榛樿鍊笺€?/span>

Android绯荤粺鍙兘鍦ㄦ煇浜涙椂鍊欏喅瀹氬叧闂帀涓€涓繘绋嬶紝褰撳唴瀛樹綆鏃讹紝涓旇骞剁殑搴旂敤璇锋眰绔嬪嵆闇€瑕佹洿澶氱殑鍐呭瓨涓虹敤鎴锋湇鍔°€傚湪閭d釜杩涚▼涓繍琛岀殑缁勪欢鍥犳鑰岃閿€姣佹帀銆傚綋杩欎簺缁勪欢鍐嶆涓虹敤鎴疯€屽伐浣滄椂锛岃繖涓繘绋嬪皢鍐嶆鍚姩銆?/span>

褰撳喅瀹氬摢涓繘绋嬪簲璇ヨ鏉€鎺夋椂锛?/span> Android绯荤粺浼氭潈琛¤繖浜涜繘绋嬪浜庣敤鎴疯€岃█鐨勭浉瀵归噸瑕佹€с€備緥濡傦細鐩稿浜庢嫢鏈変竴缁勫彲瑙?/span> Activty鐨勮繘绋嬭€岃█锛屼竴涓寔鏈変竴缁勪笉鍐嶅鐢ㄦ埛鍙鐨?/span> Activity鐨勮繘绋嬫洿搴旇琚叧闂€?/span>

杩涚▼鐢熷懡鍛ㄦ湡 (Process lifecycle)

Android绯荤粺璇曞浘璁╀竴涓簲鐢ㄨ繘绋嬪湪绯荤粺涓敖鍙兘鐨勯暱鐨勮缁存寔锛屼絾鏄渶缁堜负浜嗘柊鐨勬垨鑰呮洿涓洪噸瑕佺殑杩涚▼杩樻槸闇€瑕佺Щ闄ゆ帀鏃х殑杩涚▼浠ュ洖鏀跺唴瀛樸€備负浜嗗喅瀹氬摢涓粍浠跺簲璇ヤ繚鐣欙紝鍝釜缁勪欢搴旇鏉€鎺夛紝绯荤粺浼氭牴鎹繍琛屽湪杩涚▼涓殑缁勪欢浠ュ強杩欎簺缁勪欢杩愯鐨勭姸鎬佹潵灏嗘瘡涓€涓繘绋嬫斁鍏ヤ竴涓€滈噸瑕佺瓑绾ф爲鈥濅腑銆傛渶浣庨噸瑕佸害鐨勮繘绋嬮鍏堣鏉€鎺夛紝鐒跺悗鏄浣庣骇鍒噸瑕佸害鐨勮繘绋嬶紝濡傛涓嬪幓锛屾牴鎹仮澶嶇郴缁熻祫婧愮殑蹇呰鎬с€?/span>

杩欓噷鏈変簲涓噸瑕佸害绛夌骇銆備笅鍒楁竻鍗曞垪鍑洪噸瑕佹€ч『搴忕殑涓嶅悓绫诲瀷鐨勮繘绋?/span> (绗竴涓繘绋嬫槸鏈€閲嶈鐨勪笖搴旇鏈€鍚庤鏉€ ):

1. 鍓嶅彴杩涚▼ (Foreground process)

鐢ㄦ埛姝e湪璇锋眰鐨勮繘绋嬨€傚綋浠ヤ笅浠讳綍涓€涓潯浠舵垚绔嬫椂锛岃杩涚▼琚涓烘槸鍓嶅彴杩涚▼ (Foreground process)銆?/span>

l 浠栨寔鏈変竴涓敤鎴锋鍦ㄤ笌涔嬩氦浜掔殑 Activity(杩欎釜 Activity鐨?/span> onResume()琚皟鐢ㄤ簡 )銆?/span>

l 浠栨寔鏈変竴涓湇鍔★紝涓旇鏈嶅姟琚粦瀹氬埌涓€涓鍦ㄤ笌鐢ㄦ埛浜や簰鐨?/span> Activity浜嗐€?/span>

l 浠栨寔鏈変竴涓湇鍔★紝涓旇鏈嶅姟鍦ㄥ墠鍙拌繍琛岋紝鍗宠鏈嶅姟 startForground()璋冪敤銆?/span>

l 浠栨寔鏈変竴涓湇鍔★紝涓旇鏈嶅姟姝e湪鎵ц鍏剁敓鍛藉懆鏈熺殑鍥炶皟鏂规硶 (onCreate(),onStart(),onDestroy())銆?/span>

l 浠栨寔鏈変竴涓?/span> BroadcastReceiver锛屼笖鍏舵鍦ㄦ墽琛?/span> onRecevie()鏂规硶銆?/span>

閫氬父锛屽湪涓€涓粰瀹氱殑鏃堕棿鍙湁寰堝皯涓€浜涘墠鍙拌繘绋?/span> (foreground process)瀛樺湪銆傚綋绯荤粺鍐呭瓨濡傛婧冩硾浠ヨ嚦浜庝粬浠笉鑳藉叏閮ㄧ户缁繍琛屾椂锛屼粬浠細渚濆簭鏈€鍚庤鏉€銆傞€氬父锛屽湪閭f椂锛岃澶囧凡杈惧埌鍐呭瓨鍒嗛〉鐨勭姸鎬侊紝鎵€浠ヨ姹傛潃鎺変竴浜涘墠鍙拌繘绋嬩互纭繚鐢ㄦ埛鍝嶅簲銆?/span>

2. 鍙杩涚▼ (Visible process)

涓€涓彲瑙嗚繘绋?/span> (visible process)娌℃湁浠讳綍鍓嶅彴缁勪欢锛屼絾鍏朵粛鐒跺湪灞忓箷涓婂鐢ㄦ埛鍙銆傚綋浠ヤ笅浠讳綍涓€涓潯浠舵垚绔嬫椂锛岃杩涚▼琚涓烘槸鍙杩涚▼ (visible process)銆?/span>

l 浠栨寔鏈変竴涓?/span> Activity锛屼笖璇?/span> Activity娌℃湁澶勪簬鍓嶅彴锛屼絾鏄浜庣敤鎴疯€岃█浠栦粛鐒跺彲瑙?/span> (浠栫殑 onPause()鏂规硶琚皟鐢?/span> )銆傝繖鏄彲鑳藉彂鐢熺殑锛屼緥濡傦紝涓€涓墠鍙?/span> activity鍚姩浜嗕竴涓璇濇锛屼粬鍏佽浠栧墠闈㈢殑 activity鍙銆?/span>

l 浠栨寔鏈変竴涓湇鍔★紝涓旇鏈嶅姟琚粦瀹氬埌涓€涓彲瑙?/span> (鎴栦竴涓墠鍙?/span> )activity銆?/span>

涓€涓彲瑙嗚繘绋?/span> (visible process)琚涓烘槸鏋佸叾閲嶈鐨勶紝鍙湁涓轰簡璁╂墍鏈夌殑鍓嶅彴杩涚▼淇濇寔杩愯鎵嶆湁鍙兘浼氭潃鎺変粬銆?/span>

3. 鏈嶅姟杩涚▼ (Service process)

涓€涓繘绋嬩粬姝h繍琛屼竴涓敱 startService()鏂规硶鍚姩鐨勬湇鍔★紝骞朵笖娌℃湁琚帀鍏ュ埌涓や釜鏇撮珮绾у埆鐨勭被鍒腑銆傚敖绠℃湇鍔¤繘绋嬫病鏈夌洿鎺ヨ鐢ㄦ埛鐪嬭锛屼絾浠栭€氬父鍋氫竴浜涚敤鎴峰叧蹇冪殑浜嬫儏锛堟瘮濡傚湪鍚庡彴鎾斁闊充箰锛屾垨鑰呭湪缃戠粓涓嬭浇鏂囦欢锛夛紝鎵€浠ョ郴缁熶細璁╀粬淇濇寔杩愯鐩村埌杩欓噷娌℃湁瓒冲鐨勫唴瀛樹负鍓嶅彴杩涚▼鍜屽彲瑙佽繘绋嬩繚鐣欍€?/span>

4. 鍚庡彴杩涚▼ (Background process)

涓€涓悗鍙拌繘绋嬫寔鏈変竴涓鐢ㄦ埛涓嶅彲瑙佺殑 Activity(浠栫殑 onStop()鏂规硶宸茬粡璋冪敤浜?/span> )銆傝繖浜涜繘绋嬩笉鍐嶇洿鎺ュ奖鍝嶅埌鐢ㄦ埛浣撻獙锛岀郴缁熼殢鏃跺彲浠ユ潃姝讳粬浠负鍓嶅彴锛屽彲绀猴紝鏈嶅姟杩涚▼鍥炴敹鍐呭瓨銆傞€氬父浼氭湁璁稿鍚庡彴杩涚▼杩愯锛屾墍浠ヤ粬浠繚瀛樺湪涓€涓?/span> LRU(least recently used)鍒楄〃涓互纭繚鏈€鍚庤鏉€鐨勮繖涓繘绋嬫槸鎷ユ湁鏈€鍚庝竴涓渶杩戣鐢ㄦ埛鐪嬪埌鐨?/span> activity銆傚鏋滀竴涓?/span> Activity鐨勭敓鍛藉懆鏈熸柟娉曡 姝g‘鐨勫疄鐜颁簡锛屼繚瀛樹粬鐨勫綋鍓嶇姸鎬侊紝鏉€鎺変粬鐨勮繘绋嬪浜庣敤鎴蜂綋楠屼笉浼氭湁鏄捐憲鐨勫奖鍝嶏紝鍥犱负褰撶敤鎴峰洖鍒拌繖涓?/span> Activity锛岃繖涓?/span> Activity浼氭仮澶嶄粬鐨勬墍鏈夌殑鍙鐨勭姸鎬併€?/span>

5. 绌鸿繘绋?/span> (Empty process)

涓€涓繘绋嬩笉鍐嶆寔鏈変换浣曟椿鍔ㄧ殑搴旂敤缁勪欢銆備繚鎸佽繖绉嶇被鍨嬬殑杩涚▼娲诲姩鐨勫敮涓€鐞嗙敱鏄紦瀛樼洰鐨勶紝涓轰簡鏀瑰杽涓嬫杩愯璇ヨ繘绋嬩腑鐨勪竴涓粍浠剁殑鍚姩鏃堕棿銆傜郴缁熺粡甯告潃姝昏繖浜涜繘绋嬪湪杩涚▼缂撳瓨涓庡唴鏍哥紦瀛樹箣闂翠繚鎸佹暣涓郴缁熻祫婧愮殑骞宠 銆?/span>

Android浼氬皢涓€涓繘绋嬬殑绛夌骇鏍规嵁杩欎釜杩涚▼涓殑婵€娲荤殑缁勪欢鐨勯噸瑕佸害瀹氫箟涓轰粬鍙互琚畾涔夌殑鏈€楂樼骇銆備緥濡傦紝涓€涓繘绋嬫嫢鏈変竴涓湇鍔″拰涓€涓彲绀虹殑 activity锛岃杩涚▼浼氳瀹氫箟涓哄彲绀鸿繘绋嬶紝鑰屼笉鏄湇鍔¤繘绋嬨€?/span>

鍙﹀锛屼竴涓繘绋嬬殑绛夌骇鍙互鐢变簬鍒殑杩涚▼鐨勪緷璧栬€屽鍔犮€備竴涓湇鍔′簬鍙︿竴涓繘绋嬬殑杩涚▼姘歌繙涓嶈兘姣斿彟涓€涓繘绋嬬殑绛夌骇浣庛€備緥濡傦紝涓€涓潵鑷簬杩涚▼ A涓殑 Content Provider鏈嶅姟浜庤繘绋?/span> B涓殑涓€涓鎴风 锛屾垨鑰呰繘绋?/span> A涓殑涓€涓湇鍔¤缁戝畾鍒?/span> B涓殑涓€涓粍浠讹紝杩涚▼ A琚涓哄叾閲嶈搴︿笉浣庝簬杩涚▼ B銆?/span>

鍥犱负杩愯涓€涓湇鍔$殑杩涚▼鐨勭瓑绾ч珮浜庤繍琛屼竴涓悗鍙?/span> Activity鐨勮繘绋嬬殑绛夌骇锛屼竴涓椿鍔ㄥ噯澶囨墽琛屼竴涓暱鏃堕棿鐨勬搷浣滃彲鑳芥渶濂芥槸涓鸿繖涓搷浣滃惎鍔?/span> 涓€涓湇鍔★紝鑰屼笉鏄畝鍗曠殑鍒涘缓涓€涓伐浣滆€呯嚎绋嬶紝鐗瑰埆鏄綋杩欎釜鎿嶄綔鍙兘浼氳秴杩?/span> Activity鐨勭敓鍛芥湡銆備緥濡傦紝涓€涓?/span> Activity涓婁紶涓€涓浘鐗囧埌涓€涓?/span> Web绔欑偣锛屽簲璇ュ惎鍔ㄤ竴涓湇鍔℃潵鎵ц涓婁紶锛岃繖鏍峰綋鐢ㄦ埛绂诲紑杩欎釜 Activity鍚庯紝涓婁紶鐨勬搷浣滀粛鐒跺彲浠ュ湪鍚庡彴缁х画銆備娇鐢ㄤ竴涓湇鍔℃潵瀹堟姢杩欎釜鎿嶄綔锛屼笉璁?/span> Activity鍙戠敓浜嗕粈涔堬紝浣垮叾鑷冲皯鎷ユ湁鏈嶅姟杩涚▼ (service process)鐨勪紭鍏堢骇銆傝繖鏄悓涓€涓悊鐢卞浜庡箍鎾帴鏀惰€?/span> (Broadcast receiver)搴旇浣跨敤鏈嶅姟鑰屼笉鏄畝鍗曠殑鍚敤涓€涓伐浣滆€呯嚎绋嬨€?/span>

绾跨▼ (Threads)

褰撲竴涓簲鐢ㄥ惎鍔ㄤ簡锛岀郴缁熶細鍒涘缓涓€涓嚎绋嬫潵鎵ц杩欎釜搴旂敤锛岃繖涓嚎绋嬪彨涓?/span> (main)绾跨▼銆傝繖涓嚎绋嬮潪甯搁噸瑕侊紝鍥犱负浠栬礋璐e垎閰嶄簨浠跺埌鍚堥€傜殑鐢ㄦ埛鎺ュ彛锛屽寘鎷粯鍥句簨浠躲€備粬涔熸槸浣犵殑搴旂敤涓庢潵鑷?/span> Android鐨?/span> toolkit鐨勭粍浠?/span> (鏉ヨ嚜 android.widget涓?/span> android.view鍖呯殑缁勪欢 )浜や簰鐨勭嚎绋嬨€傝繖鏍凤紝涓荤嚎绋嬫湁鏃朵篃鍙?/span> UI绾跨▼銆?/span>

绯荤粺涓嶄細涓哄簲鐢ㄦ瘡涓粍浠跺疄渚嬪崟鐙垱寤虹嫭绔嬬殑绾跨▼銆傛墍鏈夌殑缁勪欢杩愯鍦ㄥ悓涓€涓嚎绋嬩腑锛屽苟涓旈兘鍦?/span> UI绾跨▼涓疄渚嬪寲锛岀郴缁熻皟鐢ㄥ彂閫佸埌浠庣嚎绋嬭皟搴︾殑姣忎竴涓粍浠躲€傛墍浠ワ紝鍝嶅簲绯荤粺璋冪敤鐨勬柟娉?/span> (姣斿 onKeyDown()鎶ュ憡鐢ㄦ埛鐨勮涓猴紝鎴栬€呬竴涓敓鍛藉懆鏈熺殑鍥炶皟 )鎬绘槸鍦ㄨ杩涚▼鐨?/span> UI绾跨▼涓繍琛屻€?/span>

渚嬪锛屽綋鐢ㄦ埛瑙︽懜灞忓箷涓婄殑涓€涓寜閽椂锛屼綘鐨勫簲鐢ㄧ殑 UI绾跨▼鍒嗗彂浣犵殑瑙︽懜浜嬩欢鍒伴偅涓?/span> widget, widget渚濇璁剧疆浠栫殑 pressed鐘舵€侊紝骞朵笖鍙戦€佷竴涓?/span> invalidate璇锋眰鍒颁簨浠堕槦鍒椼€傜劧鍚?/span> UI绾跨▼鍑洪槦骞堕€氱煡 widget浠栦滑搴旇閲嶇粯浠栬嚜宸便€?/span>

褰撲綘鐨勫簲鐢ㄧ▼搴忔墽琛屽瘑闆嗙殑宸ヤ綔鏉ュ搷搴旂敤鎴蜂氦浜掞紝杩欎釜鍗曚竴鐨勭嚎绋嬫ā鍨嬪彲浠ヤ骇鐢熻緝宸殑鎬ц兘锛岄櫎闈炰綘閫傚悎鐨勫疄鐜颁簡浣犵殑搴旂敤绋嬪簭 銆傜壒鍒湴锛屽鏋滄墍鏈夌殑浜嬫儏閮藉湪 UI绾跨▼涓彂鐢燂紝鎵ц闀胯€楁椂鐨勬搷浣滃缃戠粶璁块棶鎴栬€呮暟鎹煡璇㈠彲鑳戒細闃诲鏁翠釜 UI绾跨▼銆傚綋绾跨▼闃诲浜嗭紝娌℃湁浜嬩欢鍙互琚淳鍙戯紝鍖呮嫭缁樺浘浜嬩欢銆備粠鐢ㄦ埛瑙掑害鏉ョ湅锛屽簲鐢ㄤ技涔庤鎸傝捣浜嗐€傛洿绯熺硶鐨勬槸锛屽鏋?/span> UI绾跨▼闃诲鐨勬椂闂磋秴杩囦簡涓€瀹氱殑鏃堕棿 (鐜板湪澶х害璁剧疆涓?/span> 5绉?/span> )锛岀敤鎴峰皢浼氱湅鍒颁竴涓嚟鍚嶆槶钁楃殑鈥?/span> application not response鈥?ANR)瀵硅瘽妗嗐€傜敤鎴峰彲鑳戒細鍐冲畾閫€鍑轰綘鐨勫簲鐢ㄥ苟涓斿垹闄や粬銆?/span>

鍙﹀锛?/span> Android鐨?/span> UI toolkit涓嶆槸鐨勭嚎绋嬪畨鍏ㄧ殑銆傛墍浠ワ紝浣犲喅涓嶅厑璁镐粠浣犵殑宸ヤ綔绾跨▼鏉ユ搷浣滀綘鐨?/span> UI锛屽浣犵殑鐢ㄦ埛鎺ュ彛鍋氭墍鏈夌殑鎿嶄綔蹇呴』鍦?/span> UI绾跨▼涓畬鎴愩€傚洜姝わ紝瀵逛簬鍗曠嚎绋嬫ā鍨嬭繖閲屾湁涓ゆ潯瑙勫垯锛?/span>

1. 涓嶅厑璁搁樆濉?/span> UI绾跨▼

2. 涓嶅厑璁镐粠 UI绾跨▼涔嬪鏉ヨ闂?/span> Android鐨?/span> toolkit銆?/span>

宸ヤ綔鑰呯嚎绋?/span> (Worker threads)

鐢变簬浠ヤ笂鎻忚堪鐨勫崟绾跨▼妯″瀷锛屼綘鐨勫簲鐢ㄧ殑 UI鐨勫搷搴旀€ф槸鑷冲叧閲嶈鐨勶紝浣犲喅涓嶈兘闃诲鎺変綘鐨?/span> UI绾跨▼銆傚鏋滀綘鏈夎鎵ц涓€涓潪鐬棿鎬х殑鎿嶄綔锛屼綘搴旇纭繚灏嗕粬鏀惧埌鍗曠嫭鐨勭嚎绋嬩腑鍘绘墽琛?/span> (鍚庡彴 (background)鎴栬€呭伐浣滆€呯嚎绋?/span> (worker thread))銆?/span>

渚嬪锛屼互涓嬩唬鐮佹槸涓€涓偣鍑荤殑鐩戝惉鑰咃紝浠栦粠涓€涓崟鐙殑绾跨▼涓笅杞藉浘鐗囧苟灏嗕粬鏄剧ず鍒?/span> ImageView涓€?/span>

棣栧厛锛岀湅璧蜂粬浠緢濂界殑宸ヤ綔锛屽洜涓轰粬鍒涘缓浜嗕竴涓柊鐨勭嚎绋嬫潵澶勭悊缃戠粶鎿嶄綔銆傜劧鑰岋紝浠栬繚鑳屼簡鍗曠嚎绋嬫ā鍨嬬殑绗簩鏉″師鍒?/span> : 涓嶅厑璁镐粠 UI绾跨▼涔嬪鏉ヨ闂?/span> Android鐨?/span> toolkit銆傝繖涓緥瀛愪慨鏀?/span> ImageView鏄湪宸ヤ綔鑰呯嚎绋嬩腑鑰屼笉鏄?/span> UI绾跨▼涓€傝繖浼氬鑷存病鏈夊畾涔夌殑涓庡紓甯哥殑琛屼负锛屽幓杩借釜浠栧皢浼氬洶闅句笖鑰楁椂銆?/span>

瑙e喅杩欎釜闂锛?/span> Android鎻愪緵浜嗗嚑绉嶅姙娉曚粠鍒殑绾跨▼鏉ヨ闂?/span> UI绾跨▼銆傝繖閲屽垪鍑轰竴缁勫彲渚涘府鍔╃殑鏂规硶锛?/span>

Activity.runOnUiThread(Runnable)

View.post(Runnable)

View.postDelayed(Runnable,long)

渚嬪锛屼綘鍙互閫氳繃 view.post(Runnable)鏂规硶鏉ヤ慨澶嶄互涓婁唬鐮侊細

鐜板湪杩欎釜瀹炵幇鏄嚎绋嬪畨鍏ㄧ殑浜嗐€傜綉缁滄搷浣滄槸浠庝竴涓嫭绔嬬殑绾跨▼涓畬鎴愮殑锛?/span> ImageView涔熸槸鍦?/span> UI绾跨▼涓搷浣滅殑銆?/span>

鐒惰€岋紝闅忕潃鎿嶄綔鐨勫鏉傛€х殑澧炲姞锛岃繖绉嶄唬鐮佷細鍙樼殑澶嶆潅鍜岄毦浠ョ淮鎶ゃ€傚幓澶勭悊涓庡伐浣滆€呯嚎绋嬪鏉傜殑浜や簰锛屼綘鍙兘瑕佽€冭檻鍦ㄤ綘鐨勫伐浣滆€呯嚎绋嬩腑浣跨敤 Handler鏉ュ鐞嗕粠 UI绾跨▼涓彂閫佽繃鏉ョ殑娑堟伅銆備篃璁告渶濂界殑瑙e喅鏂规锛屾垨鑰呮槸鎵╁睍 AsyncTask绫伙紝浠栫畝鍖栦簡宸ヤ綔鑰呯嚎绋嬩笌 UI绾跨▼浜や簰鐨勬搷浣溿€?/span>

浣跨敤 AsyncTask(Using AsyncTask)

AsyncTask鍏佽浣犲湪浣犵殑鐢ㄦ埛鎺ュ彛涓婃墽琛屽紓姝ュ伐浣溿€備粬鍦ㄥ伐浣滆€呯嚎绋嬩腑鎵ц闃诲鎿嶄綔锛岀劧鍚庡皢缁撴灉鍙戝竷缁?/span> UI绾跨▼锛屼笉闇€瑕佷綘鑷繁澶勭悊绾跨▼鎴栬€?/span> handler銆?/span>

涓轰簡浣跨敤浠栵紝浣犻渶瑕佺户鎵?/span> AsyncTask骞朵笖瀹炵幇浠栫殑 doInBackground()鍥炶皟鏂规硶锛屼粬鍦ㄤ竴涓悗鍙扮嚎绋嬫睜涓繍琛屻€備负浜嗘洿鏂颁綘鐨?/span> UI锛屼綘闇€瑕佸疄鐜?/span> onPostExecute()鏂规硶锛屼粬浼犻€掓潵鑷?/span> doInBackgroud()鐨勭粨鏋滀笖鍦?/span> UI绾跨▼涓繍琛屻€傛墍浠ヤ綘鍙互瀹夊叏鐨勬洿鏂颁綘鐨?/span> UI銆備綘鍙互鍦?/span> UI绾跨▼閫氳繃 execute()鏉ヨ繍琛屼綘鐨勪换鍔°€?/span>

渚嬪锛屼綘鍙互浣跨敤 AsyncTask鐨勬柟娉曟潵瀹炵幇浠ヤ笂鐨勪唬鐮侊紝


鐜板湪鐨?/span>UI鏄畨鍏ㄧ殑锛屽苟涓斾唬鐮佷篃鏇寸畝鍗曚簡锛屽洜涓轰粬灏嗗摢閮ㄥ垎搴旇浜ょ敱宸ヤ綔绾跨嚎绋嬪仛鍝儴鍒嗕氦鐢?/span>UI绾跨▼鍋氱殑宸ヤ綔鍒嗗紑浜嗐€?/span>

AsyncTask濡備綍宸ヤ綔鐨勬杩板涓嬶細

浣犲彲浠?span class="shorttext">浣跨敤娉?/span> 鍨?/span> 鎸囧畾鍙傛暟鐨勭被鍨嬶紝杩涘害鍊肩殑绫诲瀷锛屽拰浠诲姟鐨勬渶缁堝€?/span>

doInBackgroud() 鏂规硶鑷姩鍦ㄥ伐浣滆€呯嚎绋嬩腑鎵ц銆?/span>

onPreExecute() 锛?/span> onPostExecute() 锛?/span> onProgressUpdate() 鍦?/span> UI 绾跨▼涓婵€娲汇€?/span>

doInBackground() 鐨勫€艰鍙戝埌 onPostExecuted() 涓€?/span>

浠讳綍鏃跺€欎綘閮藉彲浠ュ湪 doInBackground() 涓皟鐢?/span> publishProgress() 鍘绘墽琛?/span> UI 绾跨▼鐨?/span> onProgressUpdate() 鏂规硶銆?/span>

浠讳綍鏃跺€欎綘鍙互浠庝换浣曠嚎绋嬪彇娑堜换鍔°€?/span>

绾跨▼瀹夊叏鐨勬柟娉?/span> (Thread-safe methods)

鍦ㄤ竴浜涙儏鍐典笅锛屼綘瀹炵幇鐨勬柟娉曞彲鑳戒細琚涓嚎绋嬭皟鐢紝鍥犳浠栧簲璇ヨ璁′负绾跨▼瀹夊叏鐨勩€?/span>

杩欐槸鐪熷疄鐨勶紝涓€浜涙柟娉曞彲鑳戒細琚繙绋嬭皟鐢紝姣斿缁戝畾鏈嶅姟 (bound service)鐨勪竴浜涙柟娉曘€傚綋涓€涓柟娉?/span> (鍦ㄤ竴涓?/span> IBinder涓疄鐜扮殑 )鐨勮皟鐢ㄥ彂璧蜂簬鍚屼竴涓繘绋?/span> (IBinder姝h繍琛岀殑 )锛岃繖涓柟娉曞湪璋冪敤鑰呯嚎绋嬩腑鎵ц銆傜劧鑰岋紝褰撹繖涓皟鐢ㄥ彂璧峰彟涓€涓繘绋嬶紝杩欎釜鏂规硶鎵ц鐨勭嚎绋嬫槸锛岀郴缁熷湪鍚屼竴杩涚▼涓綔涓?/span> IBinder缁存姢鐨勭嚎绋嬫睜涓€夊嚭鐨勶紝 (浠栦笉鍦ㄨ繖涓繘绋嬬殑 UI绾跨▼涓墽琛?/span> )銆備緥濡傦紝閴翠簬涓€涓湇鍔$殑 onBind()鏂规硶鍙兘浠庢湇鍔℃墍鍦ㄧ殑杩涚▼璋冪敤锛屽湪 onBind()杩斿洖鐨勫璞$殑鏂规硶 (渚嬪锛屼竴涓瓙绫诲疄鐜颁簡 RPC鐨勬柟娉?/span> )搴旇浠庣嚎绋嬫睜涓皟鐢ㄣ€傚洜涓轰竴涓湇鍔″彲浠ユ湁澶氫釜瀹㈡埛绔紝澶氫釜绾跨▼姹犵殑绾跨▼鍙兘鍚屾椂璁块棶鍚屼竴涓?/span> IBinder鏂规硶銆傚洜姝わ紝 IBinder鏂规硶蹇呴』瀹炵幇涓虹嚎绋嬪畨鍏ㄧ殑銆?/span>

绫讳技鐨勶紝 content provider鍙兘鎺ュ彈浠庡埆鐨勮繘绋嬪彂鍚暟鎹姹傘€傚敖绠?/span> ContentResolver涓?/span> ContentProvider绫婚殣钘忎簡杩涚▼闂撮€氫俊濡備綍绠$悊鐨勭粏鑺傦紝 ContentProvider鏂规硶鍝嶅簲杩欎簺璇锋眰锛屽畠鐨勬柟娉曟湁锛?/span> query()锛?/span> insert()锛?/span> delete()锛?/span> udpate()锛屽拰 getType()锛岃繖浜涢兘浼氬湪 ContentProvider杩涚▼鐨勭嚎绋嬫睜涓璋冪敤锛岃€屼笉鏄繘绋嬬殑 UI绾跨▼銆傜敱浜庤繖浜涙柟娉曞彲鑳借澶氫釜绾跨▼鍚屾椂璋冪敤锛屼粬浠篃闇€瑕佸疄鐜颁负绾跨▼瀹夊叏鐨勩€?/span>

杩涚▼闂撮€氫俊 (Interprocess Communication)

Android 浣跨敤杩滅▼绋嬪紡璋冪敤 (RPC)鎻愪緵浜嗕竴涓繘绋嬮棿閫氫俊 (IPC)锛岄€氳繃杩欑鏂瑰紡鍙互璋冪敤鍒殑 activity鎴栬€呭埆鐨勫簲鐢ㄧ粍浠讹紝浣嗘槸杩滅▼鐨?/span> (鍦ㄥ埆鐨勮繘绋嬩腑鐨?/span> ) 鎵ц锛屾墍鏈夌殑缁撴灉灏嗚繑鍥炵粰璋冪敤鑰呫€傝繖闇€瑕佸垎瑙d竴涓柟娉曡皟鐢ㄥ拰浠栫殑鏁版嵁鍒颁竴涓搷浣滅郴缁熷彲浠ョ悊瑙g殑绾у埆锛屽皢浠栦粠鏈繘绋嬪拰鍦板潃绌洪棿杞€掔粰杩滅▼鐨勮繘绋嬪拰鍦板潃绌洪棿锛岀劧鍚庡湪閭i噷閲嶆柊缁勮鍜屾墽琛岃繖涓皟鐢ㄣ€傜劧鍚庤繑鍥炲€兼寜鐩稿弽鐨勬柟鍚戜紶閫掋€?/span> Android鎻愪緵浜嗘墍鏈夌殑鏉ュ畬鎴愯繖浜?/span> IPC浼犺緭鐨勪唬鐮侊紝鎵€浠ヤ綘鍙渶鍏虫敞浜庡畾涔夊拰瀹炵幇 RPC鐨勬帴鍙c€?/span>

更多相关文章

  1. 代码中设置drawableleft
  2. android 3.0 隐藏 系统标题栏
  3. Android开发中activity切换动画的实现
  4. Android(安卓)学习 笔记_05. 文件下载
  5. Android中直播视频技术探究之—摄像头Camera视频源数据采集解析
  6. 技术博客汇总
  7. android 2.3 wifi (一)
  8. AndRoid Notification的清空和修改
  9. Android中的Chronometer

随机推荐

  1. 在Android上本机运行的服务器
  2. Android(安卓)全自动js脚本测试 Appium教
  3. 【Android】数据存储之Shared Preference
  4. 用自定义 LayoutManager 实现 Android(安
  5. android与java web交互完成简单的登录和
  6. Android心得3.2--用SAX解析器解析xml文件
  7. Google官方提供的有用的Android范例程序,
  8. Android(安卓)Weekly Notes Issue #232
  9. 用kotlin打印出漂亮的android日志(三)—
  10. 如何申请Android(安卓)MapView的apiKey