Chinaunix首页 | 论坛 | 博客
  • 博客访问: 149391
  • 博文数量: 23
  • 博客积分: 2010
  • 博客等级: 大尉
  • 技术积分: 315
  • 用 户 组: 普通用户
  • 注册时间: 2008-12-03 13:55
文章分类
文章存档

2009年(13)

2008年(10)

我的朋友

分类: LINUX

2009-02-04 17:21:51

 

Activity 是一個有 UI 的類別,Service 則是一個沒有 UI 的類別。要知道 Activity 是否啟動,只要看看手機是否出現畫面即可;要知道 Service 是否有啟動,最容易的方式就是透過「除錯」的方式。以下我們實際以一個完整專案方式來對 Android 應用程式做除錯。

建立 MokoService 類別

點擊 Eclipse 的 File -> New -> Class 項目,利用 Eclipse 的自動新增功能,在先前的 HelloMoko 專案裡建立 MokoService 類別,如圖1。欄位「Superclass」應填入 android.app.Service。

create_class_eclipse.png
圖1: 建立 MokoService 類別

修改 MokoService 實作

在新增的 MokoService 類別裡,加入 onStart() 與 onDestory() 實作,如圖2。onStart() 的實作如下:

	@Override
	public void onStart(Intent intent, int startId) {
		super.onStart(intent, startId);
	}

因為 onStart() 是一個負載(override)實作,因此要呼叫 superclass 的 onStart() 方法。接著,將滑鼠移到 MokoService 類別裡的第 17 行(super.onStart),然後點擊 Run -> Toggle Breakpoint 在程式碼第 17 行的地方建立一個中斷點。

debug_service_1.png
圖2: onStart() 與 onDestory() 實作與設定中斷點

除了 MokoService 類別外,我們還要修改 AndroidManifest.xml 並在 Activity 裡啟動 MokoService 類別,請參考 [教學, #9] 的說明。

啟動除錯器

點擊 Run -> Debug Configurations 執行專案,並啟動除錯器。當 Android 應用程式成功安裝到 target device 並執行時, 會出現一個詢問對話框,選 Yes 即可,Eclipse 會將環境切換至除錯模式,如圖3。

debug_service_2.png
圖3: 是否要切換到除錯模式?

接著可以在除錯模式下看到 Android 應用程式停在先前所設定的中斷點(breakpoint),這表示 MokoService 類別已被 Android 系統載入並執行了,如圖4。

debug_service_3.png
圖4: 程式在中斷點暫停

--jollen

阅读(1238) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~