Activity 是一个有 UI 的类别,Service 则是一个没有 UI 的类别。要知道 Activity 是否启动,只要看看手机是否出现画面即可;要知道 Service 是否有启动,最容易的方式就是透过「除错」的方式。以下我们实际以一个完整项目方式来对 Android 应用程序做除错。
建立 MokoService 类别
点击 Eclipse 的 File -> New -> Class 项目,利用 Eclipse 的自动新增功能,在先前的 HelloMoko 项目里建立 MokoService 类别,如图1。字段「Superclass」应填入 android.app.Service。
![](http://www.miiceic.org.cn/manage/Upload/image/200963017013216.jpg)
图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 行的地方建立一个断点。
![](http://www.miiceic.org.cn/manage/Upload/image/200963017226881.jpg)
图2: onStart() 与 onDestory() 实作与设定断点
除了 MokoService 类别外,我们还要修改 AndroidManifest.xml 并在 Activity 里启动 MokoService 类别,请参考 [教学, #9] 的说明。
启动除错器
点击 Run -> Debug Configurations 执行项目,并启动除错器。当 Android 应用程序成功安装到 target device 并执行时, 会出现一个询问对话框,选 Yes 即可,Eclipse 会将环境切换至除错模式,如图3。
![](http://www.miiceic.org.cn/manage/Upload/image/200963017234345.jpg)
图3: 是否要切换到除错模式?
接着可以在除错模式下看到 Android 应用程序停在先前所设定的断点(breakpoint),这表示 MokoService 类别已被 Android 系统加载并执行了,如图4。
![](http://www.miiceic.org.cn/manage/Upload/image/200963017331947.jpg)
图4: 程序在断点暂停
--jollen
原文(http://www.miiceic.org.cn/07/0710/071010/200906301703576.asp)
中程在线(北京)科技有限公司
中国信息产业培训网
www.miiceic.org.cn
咨询热线:400-7068-123