ç»ä»¶ççå½å¨æ
åº
ç¨ç¨åºç»ä»¶é½æä¸ä¸ªçå½å¨æï¼ä»ååºIntentçAndroidå®ä¾å¼å§å°è¿ä¸ªå®ä¾è¢«éæ¯ãå¨è¿æé´ï¼ä»ä»¬æ许æææ许æ æï¼æææ¶æ许对ç¨æ·å¯è§æ许
ä¸å¯è§ãä¸é¢æ们就æ¥è®¨è®ºå个åºæ¬ç»ä»¶ççå½å¨æï¼å
æ¬å¨çå½å¨æå
çåç§ç¶æï¼ä»¥åç¶æä¹é´ç转æ¢ãè¿å ç§ç¶æå¯è½çç»ææ¯ï¼è¿ç¨è®©ä»ä»¬åæ¢ï¼
ç¶åå®ä¾è¢«éæ¯ã
ä¸ãactivityçå½å¨æ
ä¸ä¸ªactivityæä¸ä¸ªåºæ¬çç¶æï¼
@ å½activityå¨åå°è¿è¡æ¶ï¼å¨activityå½åä»»å¡çå æ 顶ï¼ï¼ä¸ºæ´»å¨æè
è¿è¡ç¶æãè¿æ¶activityä¼ååºç¨æ·çæä½ã
@
å½activity失å»ç¦ç¹ä½æ¯å¯¹ç¨æ·ä»ç¶å¯è§æ¶ä¸ºpausedæåç¶æãæ¤æ¶ï¼å«çactivityå¨ä»çä¸é¢ï¼éææè
å¤æ被å
¨é¨è¦çãæ以å
¶ä¸ä¸äº
æåçactivityä¹å¯ä»¥è¢«æ¾ç¤ºãä¸ä¸ªæåçactivityæ¯å¤äºæ´»å¨ç¶æçï¼ä»ç»´æ¤çææçç¶æä¿åçä¿¡æ¯ï¼å¹¶ä¸ä¾ç¶éçå¨çªå£ç®¡çå¨ï¼ã
@ å¦æä¸ä¸ªactivityå®å
¨è¢«å¦ä¸ä¸ªactivityææ©çé£ä»ä¼å¤äºstopç¶æãä½ä»ç¶ä¿åçåæ¥çç¶æåä¿¡æ¯ãç¶èï¼å¦æå«çå°æ¹éè¦æ´å¤çå
åèä¸è¿ä¸ªactivityä»ä¸ç´å¤äºéèç¶æï¼é£ä¹ç³»ç»æå¯è½ä¼ææ»ä»çè¿ç¨ã
å¦æä¸ä¸ªactivityæ¯æåæè
åæ¢ç¶æï¼ç³»ç»å¯ä»¥æ¸
çä»ä»¬å ç¨çå
åï¼æè
è°ç¨finishï¼ï¼æ¹æ³ï¼æè
ç´æ¥ç»æä»çè¿ç¨ãå½ä»å次æ¾ç¤ºç»ç¨æ·æ¶ï¼ä¼å®å
¨çéæ°è¿è¡å¹¶ä¸å 载以åæåå¨çä¿¡æ¯ã
activityç¶æä¹é´ç转æ¢ï¼æ¯éè¿ä»¥åçåä¿æ¤æ¹æ³å®æçï¼
void onCreate(Bundle savedInstanceState)
void onStart()
void onRestart()
void onResume()
void onPause()
void onStop()
void onDestroy()
è¿äºé½æ¯é©åå½æ°ï¼ä½ å¯ä»¥éåä»ä»¬ï¼å½ç¶ææ¹åæ¶åä¸äºéå½çå¤çãææçactivityå¨é¦æ¬¡è¿è¡æ¶å¿
é¡»å®ç°onCreateï¼ï¼æ¹æ³æ¥åå§åå®è£
ãactivityå¯ä»¥å®ç°onPauseï¼ï¼æ¥æ交æ°æ®æ¹åï¼ç¶ååå¤åæ¢ä¸ç¨æ·ç交äºã
è°ç¨è¶
ç±»
æ¯ä¸ä¸ªå®ç°çactivityçå½å¨ææ¹æ³é½ä¼å
è°ç¨ä¸ä¸ç¶ç±»çæ¹æ³,ä¾å¦ï¼
view plaincopy to clipboardprint?
protected void onPause() {
super.onPause();
. . .
}
protected void onPause() {
super.onPause();
. . .
}
éè¿è¿ä¸¤è
æ¯è¾?,è¿7个æ¹æ³å®ä¹äºä¸ä¸ªactivityçæ´ä¸ªçå½å¨æçæ¹æ³ãä½ å¯ä»¥å®ç°å¹¶ä¸çæµè¿ä¸ä¸ªåµå¥å¾ªç¯ï¼
@ æ´ä¸ªçå½å¨æ
è°
ç¨onCreateï¼ï¼æ¹æ³åonDestroyï¼ï¼ä¹é´ç§°ä¸ºä¸ä¸ªactivityçå®æ´ççå½å¨æãactivityä¼å¨onCreateï¼ï¼éæ§è¡æ
æçåå§åå®è£
ï¼å¨onDestroyï¼ï¼æ¹æ³ééæ¾ææçå©ä½èµæºãä¾å¦ï¼ä¸ä¸ªä»ç½ç»ä¸è½½ç¨åºç线ç¨ï¼å°±éè¦å¨onCreateï¼ï¼æ¹æ³éå建ï¼å¨
onDestroyï¼ï¼æ¹æ³ééæ¯ã
@ å¯è§çå½å¨æ
å¯
è§çå½å¨ææ¯ä»onStartï¼ï¼æ¹æ³å°onStopï¼ï¼æ¹æ³çæ¶é´ãè¿æ®µæ¶é´ï¼ç¨æ·ä¼å¨å±å¹ä¸çå°è¿ä¸ªactivityã尽管ä»å¯è½ä¸æ¯å¨æ顶å±æ¾ç¤ºï¼
ä¹æ²¡æåç¨æ·è¿è¡ä»»ä½äº¤äºãè¿ä¸¤ä¸ªæ¹æ³ä¹é´ï¼ä½ å¯ä»¥ä¿æéè¦åç¨æ·æ¾ç¤ºçèµæºãä¾å¦ï¼ä½ å¯ä»¥å¨onStartï¼ï¼æ¹æ³æ¶æ³¨åä¸ä¸ª
BroadcastReceiveræ£æµæäºååæ¥æ¹åä½ ççé¢ï¼å½ç¨æ·çä¸å°è¿ä¸ªactivityççé¢æ¶å¯ä»¥å¨onStopï¼ï¼é注éè¿ä¸ª
BroadcastReceiverãè¿ä¸¤ä¸ªæ¹æ³å¯ä»¥è¢«è°ç¨å¾å¤æ¬¡ï¼å¨å¯è§å对ç¨æ·éèæ¶ï¼ä½ä¸ºåè¡¥çactivityå¾
å½ã
@ åå°æ¾ç¤ºå¨æ
ä¸
个activityä»onResumeï¼ï¼æ¹æ³æ导ä¸ä¸ªonPauseï¼ï¼æ¹æ³ç§°ä¸ºåå°æ¾ç¤ºå¨æãæ¤æ¶ä»å¨å
¶ä»çactivityä¹ä¸æ¾ç¤ºå¹¶ä¸ä¸ç¨æ·äº¤
äºãä¸ä¸ªactivityå¯ä»¥é¢ç¹çå¨è¿ä¸¤ä¸ªæ¹æ³ä¹é´è¿åº¦ï¼ä¾å¦ï¼å½è®¾å¤ä¼ç æè
å¦ä¸ä¸ªæ°çactivityå¯å¨æ¶ï¼å®ä¼è¿å
¥onPauseï¼ï¼ç¶æï¼å½
ä¸ä¸ªactivityè¿è¡ç»ææè
æ°çæ¥æ¶å°Intent请æ±æ¶ï¼activityçonResumeï¼ï¼ä¼è¢«è°ç¨ãå æ¤ï¼è¿ä¸¤ä¸ªæ¹æ³éç代ç éä¼å¾
å°ã
ä¸å¾è¯´æäºä¸é¢è¯´çå 个循ç¯ï¼éé¢çç®å¤´è¯´æäºä¸¤ä¸ªç¶æä¹é´æ¯å¦å¯ä»¥ç¸äºè½¬æ¢ãæè²çæ¤åæ¯activity主è¦çå 个ç¶æãæ£æ¹å½¢åé¿æ¹å½¢ä»£è¡¨activityå¨ç¶æä¹é´è½¬åæ¶æ们å¯ä»¥å®ç°çä¸äºåè°æ¹æ³ã
注
ækillableè¿åï¼å®ææäºè¿ç¨å¨è°ç¨æ¹æ³è¿ååæ¯å¦å¯ä»¥è¢«ç³»ç»ææ»ï¼èä¸æ§è¡å
¶ä»ç代ç ãonPause(), onStop(), and
onDestroy()è¿ä¸ä¸ªæ¹æ³å¯ä»¥ï¼å 为onPauseæ¹æ³é¦å
被æ§è¡ï¼ä»æ¯å¯ä¸ä¸ä¸ªä¸å®ä¼è¢«è°ç¨çæ¹æ³å½è¿ç¨è¢«ææ»æ¶ï¼ä½æ¯onStopï¼ï¼å
onDestroyï¼ï¼æ¹æ³ä¸ä¼ãå æ¤ï¼ä½ å¯ä»¥å¨onPause()æ¹æ³éä¿åä¸äºè¿ç»çæ°æ®ï¼ä¾å¦ç¼è¾ã
killable
è¿å被æ è®°ænoçæ¹æ³ï¼ä¿æ¤activityé²æ¢ä»ä»¬è¢«è°ç¨æ¶ï¼è¢«è¿ç¨ææ»ãä¾å¦ï¼ä¸ä¸ªactivityæ¯å¤äºå¯è¢«ææ»çç¶æï¼å½activityä»
onPauseï¼ï¼æ¹æ³è·³è½¬å°onResumeï¼ï¼æ¹æ³æ¶ï¼å¨OnPauseæ¹æ³åè°ä¹åæ¯ä¸ä¼è¢«ææ»çã
æ£å¦åé¢çç« è:è¿ç¨åçå½å¨æï¼ä¸ä¸ªæ²¡æå®ä¹ä¸ºâkillableâçactivityä»ç¶å¯ä»¥è¢«ç³»ç»ç»æï¼ä½è¿æ¶ä¼åçå¨ç¹æ®æ
åµä¸ï¼æ¯å¦æ²¡æå
¶ä»èµæºæ¶ã
ä¿åactivityçç¶æ
å½ç³»ç»ï¼èä¸æ¯ç¨æ·ï¼å
³éä¸ä¸ªactivityæ¥èçå
åæ¶ï¼ç¨æ·å¸æå次å¯å¨activityæ¶ä¼åå°å½æ¶çç¶æã
为
äºå¨activity被ææ»ä¹åæè·ä»çç¶æï¼ä½ å¯ä»¥å®ç°
onSaveInstanceStateï¼ï¼æ¹æ³ï¼Androidä¼å¨ä¸ä¸ªactivityå°è¦è¢«å
³éæ¶è°ç¨è¿ä¸ªæ¹æ³ï¼ä¹å°±æ¯å¨onPauseï¼ï¼æ¹æ³ä¹
åãä»åä¼ éç»æ¹æ³ä¸ä¸ªBandle对象ï¼ä½ å¯ä»¥ç¨key-valueçæ¹å¼ä¿åä½ çæ°æ®ãå½activityå次è¿è¡æ¶ãè¿ä¸ªBandle对象ä¼ä¼ éç»
onCreateï¼ï¼æ¹æ³ãonStartï¼ï¼æ¹æ³ãonRestoreInstanceStateï¼ï¼æ¹æ³ãè¿å 个æ¹æ³é½è½é建å½æ¶çactivity
ç¶æã
ä¸
åonPauseï¼ï¼ååæ讨论çå
¶ä»å 个æ¹æ³,onSaveInstanceStateï¼ï¼åonRestoreInstanceStateï¼ï¼æ¹æ³ä¸
æ¯çå½å¨ææ¹æ³ãä¸æ¯ä¸æ¯æ»è¢«è°ç¨ãä¾å¦ï¼Androidå¨activityå°è¦è¢«ç³»ç»éæ¯ä¹åè°ç¨onSaveInstanceStateï¼ï¼æ¹æ³ï¼å½
activityå®ä¾è¢«ç¨æ·çæä½éæ¯æ¶ï¼ä¾å¦æä¸Backé®ï¼ï¼æ¯ä¸ä¼è°ç¨è¿ä¸ªæ¹æ³çãè¿ç§æ
åµä¸æ²¡æçç±ä¿åä»çç¶æã
Coordinating activities
å½ä¸ä¸ªactivityå¯å¨äºå¦ä¸ä¸ªactivityï¼ä»ä»¬é½ç»åäºçå½å¨æç转æ¢ãä¸ä¸ªæåäºæè
ç»æäºï¼å
¶ä»çactivityå¯å¨ãä¸ç§æ
åµä½ å¯è½éè¦è°èè¿äºactivityï¼
çå½å¨ææ¹æ³çåè°é¡ºåºé½æ¯å®ä¹å¥½çï¼å°¤å
¶å½ä¸¤ä¸ªactivityå¨åä¸è¿ç¨ä¸ï¼
1.å½åè¿è¡çactivityçonPauseï¼ï¼æ¹æ³è¢«è°ç¨ã
2.ç¶åå°è¦è¿è¡çactivityçonCreateï¼ï¼ãonStartï¼ï¼ãonResumeï¼ï¼æ¹æ³è¢«ä¾æ¬¡è°ç¨ã
3.ç¶åï¼å¦æå°è¦è¿è¡çactivityä¸å¤ªå¯è§ï¼é£ä¹onstopï¼ï¼æ¹æ³ä¼è¢«è°ç¨ã
äºãServiceççå½å¨æï¼
æäº Service ç±»æ们å¦ä½å¯å¨ä»å¢ï¼æ两ç§æ¹æ³ï¼
• Context.startService()
• Context.bindService()
1. å¨åä¸ä¸ªåºç¨ä»»ä½å°æ¹è°ç¨ startService() æ¹æ³å°±è½å¯å¨ Service äºï¼ç¶åç³»ç»ä¼åè° Service ç±»ç
onCreate() 以å onStart() æ¹æ³ãè¿æ ·å¯å¨ç Service ä¼ä¸ç´è¿è¡å¨åå°ï¼ç´å°
Context.stopService() æè
selfStop() æ¹æ³è¢«è°ç¨ãå¦å¤å¦æä¸ä¸ª Service å·²ç»è¢«å¯å¨ï¼å
¶ä»ä»£ç åè¯å¾è°ç¨
startService() æ¹æ³ï¼æ¯ä¸ä¼æ§è¡ onCreate() çï¼ä½ä¼éæ°æ§è¡ä¸æ¬¡ onStart() ã
2. å¦å¤ä¸ç§ bindService() æ¹æ³çæææ¯ï¼æè¿ä¸ª Service åè°ç¨ Service
ç客æ·ç±»ç»èµ·æ¥ï¼å¦æè°ç¨è¿ä¸ªå®¢æ·ç±»è¢«éæ¯ï¼Service ä¹ä¼è¢«éæ¯ãç¨è¿ä¸ªæ¹æ³çä¸ä¸ªå¥½å¤æ¯ï¼bindService() æ¹æ³æ§è¡å
Service ä¼åè°ä¸è¾¹æå°ç onBind() æ¹åï¼ä½ å¯ä»¥ä»è¿éè¿åä¸ä¸ªå®ç°äº IBind
æ¥å£çç±»ï¼å¨å®¢æ·ç«¯æä½è¿ä¸ªç±»å°±è½åè¿ä¸ªæå¡éä¿¡äºï¼æ¯å¦å¾å° Service è¿è¡çç¶ææå
¶ä»æä½ãå¦æ Service
è¿æ²¡æè¿è¡ï¼ä½¿ç¨è¿ä¸ªæ¹æ³å¯å¨ Service å°±ä¼ onCreate() æ¹æ³èä¸ä¼è°ç¨ onStart()ã
æ»ç»ï¼
1. startService()çç®çæ¯åè°onStart()æ¹æ³ï¼onCreate()
æ¹æ³æ¯å¨Serviceä¸åå¨çæ¶åè°ç¨çï¼å¦æServiceåå¨ï¼ä¾å¦ä¹åè°ç¨äºbindServiceï¼é£ä¹ServiceçonCreateæ¹æ³
å·²ç»è°ç¨äºï¼é£ä¹startService()å°è·³è¿onCreate() æ¹æ³ã
2.
bindService()ç®çæ¯åè°onBind()æ¹æ³ï¼å®çä½ç¨æ¯å¨Serviceåè°ç¨è
ä¹é´å»ºç«ä¸ä¸ªæ¡¥æ¢ï¼å¹¶ä¸è´è´£æ´å¤çå·¥ä½ï¼ä¾å¦ä¸ä¸ª
Serviceéè¦è¿æ¥æå¡å¨çæä½ï¼ï¼ä¸è¬ä½¿ç¨bindServiceæ¥ç»å®å°ä¸ä¸ªç°æçServiceï¼å³éè¿StartServiceå¯å¨çæ
å¡ï¼ã
ç±äºService çonStart()æ¹æ³åªæå¨startService()å¯å¨Serviceçæ
åµä¸æè°ç¨ï¼æ
使ç¨onStart()çæ¶åè¦æ³¨æè¿ç¹ã
ä¸ Service é信并ä¸è®©å®æç»è¿è¡
å¦ææ们æ³ä¿æå Service çéä¿¡ï¼åä¸æ³è®© Service éç Activity éåºèéåºå¢ï¼ä½ å¯ä»¥å
startService() ç¶åå bindService() ãå½ä½ ä¸éè¦ç»å®çæ¶åå°±æ§è¡ unbindService()
æ¹æ³ï¼æ§è¡è¿ä¸ªæ¹æ³åªä¼è§¦å Service ç onUnbind() èä¸ä¼æè¿ä¸ª Service éæ¯ãè¿æ ·å°±å¯ä»¥æ¢ä¿æå Service
çéä¿¡ï¼ä¹ä¸ä¼éç Activity éæ¯èéæ¯äºã
æé« Service ä¼å
级
Android
ç³»ç»å¯¹äºå
å管çæèªå·±çä¸å¥æ¹æ³ï¼ä¸ºäºä¿éç³»ç»æåºç¨³å®çè¿ä¿¡ï¼ç³»ç»å
é¨ä¼èªå¨åé
ï¼æ§å¶ç¨åºçå
å使ç¨ãå½ç³»ç»è§å¾å½åçèµæºé常æéçæ¶åï¼ä¸ºäºä¿
è¯ä¸äºä¼å
级é«çç¨åºè½è¿è¡ï¼å°±ä¼ææä¸äºä»è®¤ä¸ºä¸éè¦çç¨åºæè
æå¡æ¥éæ¾å
åãè¿æ ·å°±è½ä¿è¯çæ£å¯¹ç¨æ·æç¨çç¨åºä»ç¶åè¿è¡ãå¦æä½ ç
Service 碰ä¸äºè¿ç§æ
åµï¼å¤åä¼å
被ææãä½å¦æä½ å¢å Service çä¼å
级就è½è®©ä»å¤çä¸ä¼ï¼æ们å¯ä»¥ç¨
setForeground(true) æ¥è®¾ç½® Service çä¼å
级ã
为ä»ä¹æ¯ foreground ? é»è®¤å¯å¨ç Service æ¯è¢«æ 记为 backgroundï¼å½åè¿è¡ç Activity ä¸è¬è¢«æ 记为
foregroundï¼ä¹å°±æ¯è¯´ä½ ç» Service è®¾ç½®äº foreground é£ä¹ä»å°±åæ£å¨è¿è¡ç Activity
类似ä¼å
级å¾å°äºä¸å®çæé«ãå½è®©è¿å¹¶ä¸è½ä¿è¯ä½ å¾ Service æ°¸è¿ä¸è¢«ææï¼åªæ¯æé«äºä»çä¼å
级ã
ä¸ãandroidçserviceççå½å¨æä¸activity类似ï¼ä½æ¯æä¸äºä¸åï¼
onCreateåonStartæ¯ä¸åç
é
è¿ä»å®¢æ·ç«¯è°ç¨Context.startService(Intent)æ¹æ³æ们å¯ä»¥å¯å¨ä¸ä¸ªæå¡ãå¦æè¿ä¸ªæå¡è¿æ²¡æè¿è¡ï¼Androidå°å¯å¨å®å¹¶
ä¸å¨onCreateæ¹æ³ä¹åè°ç¨å®çonStartæ¹æ³ãå¦æè¿ä¸ªæå¡å·²ç»å¨è¿è¡ï¼é£ä¹å®çonStartæ¹æ³å°è¢«æ°çIntentå次è°ç¨ãæ以对äº
å个è¿è¡çServiceå®çonStartæ¹æ³è¢«åå¤è°ç¨æ¯å®å
¨å¯è½ç并ä¸æ¯å¾æ£å¸¸çã
onResumeãonPause以åonStopæ¯ä¸éè¦ç
åè°ä¸ä¸ªæå¡é常æ¯æ²¡æç¨æ·çé¢çï¼æ以æ们ä¹å°±ä¸éè¦onPauseãonResumeæè
onStopæ¹æ³äºãæ 论ä½æ¶ä¸ä¸ªè¿è¡ä¸çServiceå®æ»æ¯å¨åå°è¿è¡ã
onBind
å¦
æä¸ä¸ªå®¢æ·ç«¯éè¦æä¹
çè¿æ¥å°ä¸ä¸ªæå¡ï¼é£ä¹ä»å¯ä»¥è°ç¨Context.bindServiceæ¹æ³ãå¦æè¿ä¸ªæå¡æ²¡æè¿è¡æ¹æ³å°éè¿è°ç¨
onCreateæ¹æ³å»å建è¿ä¸ªæå¡ä½å¹¶ä¸è°ç¨onStartæ¹æ³æ¥å¯å¨å®ãç¸åï¼onBindæ¹æ³å°è¢«å®¢æ·ç«¯çIntentè°ç¨ï¼å¹¶ä¸å®è¿åä¸ä¸ª
IBind对象以便客æ·ç«¯ç¨åå¯ä»¥è°ç¨è¿ä¸ªæå¡ãåä¸æå¡è¢«å®¢æ·ç«¯åæ¶å¯å¨åç»å®æ¯å¾æ£å¸¸çã
onDestroy
ä¸
Activityä¸æ ·ï¼å½ä¸ä¸ªæå¡è¢«ç»ææ¯onDestroyæ¹æ³å°ä¼è¢«è°ç¨ãå½æ²¡æ客æ·ç«¯å¯å¨æç»å®å°ä¸ä¸ªæå¡æ¶Androidå°ç»ç»è¿ä¸ªæå¡ãä¸å¾å¤
Activityæ¶çæ
åµä¸æ ·ï¼å½å
åå¾ä½çæ¶åAndroidä¹å¯è½ä¼ç»ç»ä¸ä¸ªæå¡ãå¦æè¿ç§æ
åµåçï¼Androidä¹å¯è½å¨å
åå¤ç¨çæ¶åå°è¯å¯å¨
被ç»æ¢çæå¡ï¼æä»¥ä½ çæå¡å¿
须为éå¯æä¹
ä¿åä¿¡æ¯ï¼å¹¶ä¸æ好å¨onStartæ¹æ³å
æ¥åã
--------------------------------------------------------------------------------------------------
activityççå½å¨æ
oncreate(Bundle
savedInstanceState):å¨activity第ä¸æ¬¡è¢«å建çæ¶åè°ç¨ãè¿éæ¯ä½ åææåå§å设置çå°æ¹ââå建è§å¾ãç»å®æ°æ®è³å表çã
å¦ææ¾ç»æç¶æè®°å½ï¼åè°ç¨æ¤æ¹æ³æ¶ä¼ä¼ å
¥ä¸ä¸ªå
å«çæ¤activity以åç¶æçå
对象å为åæ°
onRestart()ï¼å¨activityåæ¢åï¼å¨å次å¯å¨ä¹å被è°ç¨ã
onStart()ï¼å½activityæ£è¦åå¾ä¸ºç¨æ·æè§æ¶è¢«è°ç¨ã
onResume()ï¼å¨activityå¼å§ä¸ç¨æ·è¿è¡äº¤äºä¹å被è°ç¨ãæ¤æ¶activityä½äºå æ 顶é¨ï¼å¹¶æ¥åç¨æ·è¾å
¥ã
onPause()ï¼å½ç³»ç»å°è¦å¯å¨å¦ä¸ä¸ªactivityæ¶è°ç¨ãæ¤æ¹æ³ä¸»è¦ç¨æ¥å°æªä¿åçååè¿è¡æä¹
åï¼åæ¢ç±»ä¼¼å¨ç»è¿æ ·èè´¹CPUçå¨ä½çãè¿ä¸åå¨ä½åºè¯¥å¨çæ¶é´å
å®æï¼å 为ä¸ä¸ä¸ªactivityå¿
é¡»çå°æ¤æ¹æ³è¿ååæä¼ç»§ç»ã
onStop()ï¼å½activityä¸å为ç¨æ·å¯è§æ¶è°ç¨æ¤æ¹æ³ãè¿å¯è½åçå¨å®è¢«éæ¯æè
å¦ä¸ä¸ªactivityï¼å¯è½æ¯ç°åçæè
æ¯æ°çï¼åå°è¿è¡ç¶æ并è¦çäºå®ã
onDestroy()ï¼å¨activityéæ¯åè°ç¨ãè¿æ¯activityæ¥æ¶çæåä¸ä¸ªè°ç¨ãè¿å¯è½åçå¨activityç»æï¼è°ç¨äºå®ç finish() æ¹æ³ï¼æè
å 为系ç»éè¦ç©ºé´æ以临æ¶çéæ¯äºæ¤acitivityçå®ä¾æ¶ãä½ å¯ä»¥ç¨isFinishing() æ¹æ³æ¥åºåè¿ä¸¤ç§æ
åµã
åè°activity
å½ä¸ä¸ªactivityå¯å¨äºå¦å¤ä¸ä¸ªçæ¶åï¼å®ä»¬é½ä¼ç»åçå½å¨æååãä¸ä¸ªä¼æåä¹è³åæ¢ï¼èå¦ä¸ä¸ªåå¯å¨ãè¿ç§æ
åµä¸ï¼ä½ å¯è½éè¦åè°å¥½è¿äºactivityï¼
çå½å¨æåè°é¡ºåºæ¯å·²ç»å®ä¹å¥½çï¼å°¤å
¶æ¯å¨ä¸¤ä¸ªactivityå¨åä¸ä¸ªè¿ç¨å
çæ
åµä¸ï¼
1. è°ç¨å½åactivityç onPause() æ¹æ³ã
2. æ¥çï¼é¡ºåºè°ç¨æ°å¯å¨activityçonCreate()ã onStart()åonResume()æ¹æ³ã
3. ç¶åï¼å¦æå¯å¨çactivityä¸åäºå±å¹ä¸å¯è§ï¼åè°ç¨å®çonStop()æ¹æ³ã
æ»ä¹ï¼1ãActivity ä»å建å°è¿å
¥è¿è¡ææ触åçäºä»¶ onCreate()-->onStart-->onResume()
2ãä»è¿è¡æå°åæ¢ææ触åçäºä»¶ onPause()--->onStop()
3ãä»åæ¢æå°è¿è¡ææ触åäºä»¶ onRestart()-->onStart()--->onResume()
ãã 4ãä»è¿è¡æå°æåææ触åäºä»¶ onPause()
5ãä»æåæå°è¿è¡ææ触åäºä»¶ onResume()
横ç«å±å¹åæ¢çå½å¨æ
1.ä¸è®¾ç½®Activityçandroid:configChangesæ¶,åå±ä¼éæ°è°ç¨å个çå½å¨æ,å横å±æ¶ä¼æ§è¡ä¸æ¬¡,åç«å±æ¶ä¼æ§è¡ä¸¤æ¬¡.
2.设置Activityçandroid:configChanges="orientation"æ¶,åå±è¿æ¯ä¼éæ°è°ç¨å个çå½å¨æ,å横ãç«å±æ¶åªä¼æ§è¡ä¸æ¬¡.
3.设置Activityçandroid:configChanges="orientation|keyboardHidden"æ¶,åå±ä¸ä¼éæ°è°ç¨å个çå½å¨æ,åªä¼æ§è¡onConfigurationChangedæ¹æ³.
serviceççå½å¨æ
å¯å¨Serviceæ¶å¯è°ç¨startServiceåbindService()æ¹æ³æ¥å¯å¨ï¼ç¨è¿ä¸¤ç§æ¹æ³å¯å¨çServiceççå½å¨ææ¯ä¸åçã
Serviceççå½å¨æåªæonCreate,onStartåonDestroyï¼æ²¡æonResume,onPauseåonStopï¼å¤§å¤
æ°æ¶é´Serviceé½æ¯è¿è¡çï¼ä½å¨ä¸¥éçå
åååä¸å®ä¹å¯è½è¢«ç³»ç»killï¼å¦æ被killï¼ç³»ç»ä¼å¨ç¨åå°è¯éæ°å¯å¨è¿ä¸ªService
Serviceçè°ç¨
éå¾ä¸ï¼
è°ç¨Context.startService()å¯å¨Serviceï¼è°ç¨Context.stopService()æService.stopSelf()æService.stopSelfResult()å
³éServiceçè°ç¨ã
Serviceçå½å¨æåæï¼
注ï¼onCreate,onStart(),onDestroy()æ¯Serviceçå½å¨æç¸å
³çæ¹æ³
å½Context.startService()å¯å¨Serviceæ¶ï¼å¦æServiceæ¬èº«æ²¡æè¿è¡ï¼åè°ç¨
onCreate()->onStart()å®æServiceå¯å¨ãå¦æServiceå·²ç»è¿è¡ï¼ååªè°ç¨
onStart()ï¼onStart()å¯ä»¥å¤æ¬¡è¢«è°ç¨ã
Serviceå
³éå¿
é¡»è°ç¨Context.stopService()æService.stopSelf()æ
Service.stopSelfResult()æ¹æ³ï¼å
³éä¹åè°ç¨onDestroy()æ¹æ³ï¼å¦åå¦æContextç´æ¥éåºè没æåæ¢
Serviceçè¯ï¼Serviceä¼ä¸ç´å¨åå°è¿è¡ã该Serviceçè°ç¨è
åªè½åå¯å¨åéè¿stopServiceå
³éServiceã
çå½å¨æ顺åºä¸ºï¼onCreate()->onStart()->onDestroy()
éå¾äºï¼
è°ç¨Context.bindService()è¿è¡åå§åç»å®ï¼ä½¿ç¨Context.unbindService()åæ¶ç»å®ï¼ç±äºServiceåContextæ¯ç»å®å
³ç³»ï¼å½Contextéåºæ被éæ¯æ¶ï¼Serviceä¹ä¼ç¸åºéåºã
Serviceçå½å¨æåæï¼
è°ç¨Context.bindService()æ¶ï¼Serviceä¼ç»åonCreate->onBind()ï¼onBindå°è¿åç»å®¢æ·ç«¯ä¸ä¸ª
IBindå®ä¾ï¼IBindå
许客æ·ç«¯åè°æå¡çæ¹æ³ãæ¤æ¶ContextåServiceæ¯ç»å®å¨ä¸èµ·çï¼Contextéåºäºï¼Serviceè°ç¨
onUnbind()->onDestroy()ç¸åºéåºã
çå½å¨æ顺åºä¸ºï¼onCreate->onBind(åªä¸æ¬¡ï¼ä¸å¯å¤æ¬¡ç»å®)->onUnbind->onDestroy()
BroadcastReceiveråªè½éè¿startServiceå¯å¨Serviceï¼å 为广ææ¬èº«çå½å¨æå¾çï¼bindçè¯æ²¡ææä¹
æä¸æ¯éè¿bindServiceå建çæå¡ï¼ä½ä»ç¶éè¿bindServiceå¾å°äºæå¡å¯¹è±¡ï¼ï¼å°±å¯è½unbindServiceåè¿å¨è¿è¡ï¼å¦ååºè¯¥æ¯ç»ææäºã
温馨提示:答案为网友推荐,仅供参考