小白學phoneGap《構建跨平臺APP:phoneGap移動應用實戰》連載三(經過實例來體驗生命周

4.1.2  經過實例來親身體驗Activity的生命週期

上一小節介紹了Activity生命週期中的各個過程,本小節將以一個簡單的實例來使讀者親身體驗到Activity生命週期中的各個事件。html

在Eclipse中新建一個Android工程,命名爲example4_1,修改其MainActivity類中的內容如範例4-1所示。ide

【範例4-1Activity生命週期的演示】學習

01     //此處省略若干個導入文件,由Eclipse自動生成  
02     public classMainActivity extends Activity {                                            //類MainActivity繼承類Activity  
03              String TAG="Activity生命週期事件";  
04              @Override  
05              protected voidonCreate(Bundle savedInstanceState) {  
06                        super.onCreate(savedInstanceState);  
07                        setContentView(R.layout.activity_main);  
08                        Log.e(TAG,"啓動onCreate事件");  
09              }  
10              @Override  
11              protected voidonDestroy() {                                                            //重寫onDestroy事件  
12                        // TODO Auto-generatedmethod stub  
13                        super.onDestroy();  
14                        Log.e(TAG,"啓動onDestroy事件");                                        //在LogCat中顯示記錄  
15              }  
16              @Override  
17              protected void onPause(){  
18                        // TODO Auto-generatedmethod stub  
19                        super.onPause();  
20                        Log.e(TAG,"啓動onPause事件");  
21              }  
22              @Override  
23              protected voidonRestart() {  
24                        // TODO Auto-generatedmethod stub  
25                        super.onRestart();  
26                        Log.e(TAG,"啓動onRestart事件");  
27              }  
28              @Override  
29              protected void onResume(){  
30                        // TODO Auto-generatedmethod stub  
31                        super.onResume();  
32                        Log.e(TAG,"啓動onResume事件");  
33              }  
34              @Override  
35              protected void onStart(){  
36                        // TODO Auto-generatedmethod stub  
37                        super.onStart();  
38                        Log.e(TAG,"啓動onStart事件");  
39              }  
40              @Override  
41              protected void onStop() {  
42                        // TODO Auto-generatedmethod stub  
43                        super.onStop();  
44                        Log.e(TAG,"啓動onStop事件");  
45              }  
46     }

運行以後便可看到在LogCat窗口中顯示出如圖4-2所示的內容。
spa

提示:能夠經過設置過濾器來過濾LogCat中的信息,使之只顯示與該Activity有關的記錄,如圖4-3所示。過濾後的內容如圖4-4所示。日誌

回過頭來再看上一小節中對啓動Activity的描述,要啓動一個Activity須要經歷onCreate、onStart、onResume 3個事件,在圖4-4中能夠確認這一點。能夠經過對手機的進一步操做來驗證上一小節中的內容,好比點擊HOME鍵或返回鍵來觀察LogCat中的日誌記錄。code

圖4-2  Activity啓動時所經歷的事件orm

圖4-3  利用Tag標籤過濾LogCat中的信息htm


圖4-4  過濾後的LogCat窗口繼承

在Eclipse的代碼編輯區域右擊,依次選擇Source|Overridemethods命令能夠看到一些其餘的事件,如圖4-5所示。生命週期

圖4-5  Activity中的一些其餘事件

這類事件大多對應着應用的某一特定操做或錯誤。好比事件OnTitleChanged就是在應用的標題被修改時由系統所發出的事件;再好比聽音樂,音樂播放到1分50秒時忽然打進來一個電話,系統就會對播放器的Activity使用onPause方法,同時啓動一個接電話的Activity,當用戶接完電話後則又會經過onRestar方法和onStar方法返回音樂播放界面,並調整音樂播放進度爲1分50秒。


清華大學出版社推出的《構建跨平臺APP:Phonegap移動應用實戰》是一本APP實戰書,包含20多個APP實例和3個APP項目,還結合了HTML5移動開發。本書面向移動開發入門人員,低門檻,淺閱讀,最適合移動APP創業小白。本次發佈第3~5章做爲讀者學習的基礎,有興趣的歡迎購買本書!歡迎加羣:348632872,向做者直接提問交流!

相關文章
相關標籤/搜索