Android实战Service BroadcastReceiver与AlarmManager
2010-08-22 04:48:00 来源:WEB开发网Android实战Service BroadcastReceiver与AlarmManager
---------首届Google暑期大学生博客分享大赛——2010 Andriod篇
接触Android也有半年了,小作品也发布了几个,但是其中都没有用到Servcie,在这一点觉得自己还是有所不足的。目前正在做的这个应用要使用到Service,所以就当是补补课了。
应用的目标很简单,用户设定一个时间,到时后停止音乐的播放。所以我们需要使用Service来保持在Activity结束后继续维持计时。当用户设定某一时间后启动一个Service,之后所有操作由Service驱动,Activity界面就可以关闭了,在Service中我们要使用 AlarmService来实现计时,当时间到时AlarmManager会发送一个广播,你需要一个BroadcastReceiver来处理这个广播完成时间到时时要完成的操作。
如果说正在看这篇文章的你还不知道什么是Service或BroadcastReceiver的话,您需要自己另找资料学习一下了,我只能简单说 Service是一个后台的应用程序,它没有显示的界面所以也就不能与用户交互,但是它还是能够通信的。Service有两种启动的方式一个使用 Context.startService()启动,另一个则是使用Context.bindService()来启动,两者存在这区别。而 BroadCastReceiver就是一个收音机,这个BroadCastReceiver会响应一个有特定标识的消息。我也只能简单的说这一点,更多的内容你可以自己在Google上搜索一些关于Service和BroadcastReceiver的资料吧。
首先是要做的是一个Service,你需要继承Service类并实现它的onCreate(),onStart(),onDestroy(),onBind()方法,其中onBind()方法是必须实现的。
实例代码如下
package com.shinestudio.sleepMusic.service;
import java.util.Calendar;
//......
import com.shinestudio.sleepMusic.AlarmReceiver;
import com.shinestudio.sleepMusic.StartActivity;
public class SleepMusicService extends Service {
private static String TAG = "sleepMusicService";
private static SleepMusicService sms = null;
private static int NOTIFICATION_ID = 0x1209;
private String settingTime;
更多精彩
赞助商链接