- 浏览: 281647 次
- 性别:
- 来自: 广州
文章分类
最新评论
-
xianwubiao:
坑爹。。。。。
IOS之简单选择器UIPickerView(省份+城市) -
yanransysu:
为啥结果没有显示图片嘞,我都已经把你共享的文件给放进去了?
IOS之集合视图UICollectionView -
ajxjwha:
获取的总是空,为什么?!
IOS之简单选择器UIPickerView(省份+城市) -
如果宅:
附件下载下来是图片!
IOS之集合视图UICollectionView -
ikrboy:
小红星凯 写道找不到pickview 那个协议怎么搞?步骤写得 ...
IOS之简单选择器UIPickerView(省份+城市)
三部分
1.MyClock.java(设置界面)
2.CallAlarm.java(BroadcastReceiver)
3.AlarmAlert.java(闹钟响应)
1.MyClock.java(设置界面)
private EditText etHour1, etMinute1, etHour2, etMinute2; private TextView txTime1, txTime2; private Button buSet1, buCancel1, buSet2, buCancel2; private Calendar calendar = Calendar.getInstance(); public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.my_clock); etHour1 = (EditText) findViewById(R.id.editText1); etMinute1 = (EditText) findViewById(R.id.editText2); etHour2 = (EditText) findViewById(R.id.editText3); etMinute2 = (EditText) findViewById(R.id.editText4); txTime1 = (TextView) findViewById(R.id.textView1); txTime2 = (TextView) findViewById(R.id.textView2); buSet1 = (Button) findViewById(R.id.button1); buCancel1 = (Button) findViewById(R.id.button2); buSet2 = (Button) findViewById(R.id.button3); buCancel2 = (Button) findViewById(R.id.button4); calendar.setTimeInMillis(System.currentTimeMillis()); etHour1.setText(calendar.get(Calendar.HOUR_OF_DAY) + ""); etMinute1.setText(calendar.get(Calendar.MINUTE) + ""); etHour2.setText(calendar.get(Calendar.HOUR_OF_DAY) + ""); etMinute2.setText(calendar.get(Calendar.MINUTE) + ""); buSet1.setOnClickListener(new OnClickListener() { public void onClick(View v) { int hour = Integer.parseInt(etHour1.getText().toString()); int minute = Integer.parseInt(etMinute1.getText().toString()); calendar.set(Calendar.HOUR_OF_DAY, hour); calendar.set(Calendar.MINUTE, minute); calendar.set(Calendar.SECOND, 0); calendar.set(Calendar.MILLISECOND, 0); Intent intent = new Intent(MyClock.this, CallAlarm.class); /* 建立PendingIntent */ //注意第二个参数为0 PendingIntent sender = PendingIntent.getBroadcast(MyClock.this, 0, intent, 0); AlarmManager am; am = (AlarmManager) getSystemService(ALARM_SERVICE); //设置单次闹钟 am.set(AlarmManager.RTC_WAKEUP, calendar.getTimeInMillis(), sender); /* 更新显示的设定闹钟时间 */ String tmpS = format(hour) + ":" + format(minute); txTime1.setText(tmpS); /* 以Toast提示设定已完成 */ Toast.makeText(MyClock.this, "设定闹钟时间为" + tmpS, Toast.LENGTH_SHORT).show(); } }); buSet2.setOnClickListener(new OnClickListener() { public void onClick(View v) { int hour = Integer.parseInt(etHour2.getText().toString()); int minute = Integer.parseInt(etMinute2.getText().toString()); calendar.set(Calendar.HOUR_OF_DAY, hour); calendar.set(Calendar.MINUTE, minute); calendar.set(Calendar.SECOND, 0); calendar.set(Calendar.MILLISECOND, 0); Intent intent = new Intent(MyClock.this, CallAlarm.class); /* 建立PendingIntent */ //注意第二个参数为1 PendingIntent sender = PendingIntent.getBroadcast(MyClock.this, 1, intent, 0); AlarmManager am; //设置重复闹钟 am = (AlarmManager) getSystemService(ALARM_SERVICE); am.setRepeating(AlarmManager.RTC_WAKEUP, calendar.getTimeInMillis(),15000, sender); /* 设定重复闹钟时间 */ String tmpS = format(hour) + ":" + format(minute); txTime2.setText(tmpS); /* 以Toast提示设定已完成 */ Toast.makeText(MyClock.this, "设定重复闹钟时间为" + tmpS, Toast.LENGTH_SHORT).show(); } }); buCancel1.setOnClickListener(new OnClickListener() { public void onClick(View v) { Intent intent = new Intent(MyClock.this, CallAlarm.class); /* 建立PendingIntent */ //注意第二个参数为0 PendingIntent sender = PendingIntent.getBroadcast(MyClock.this, 0, intent, 0); AlarmManager am; am = (AlarmManager) getSystemService(ALARM_SERVICE); am.cancel(sender); Toast.makeText(MyClock.this, "单次闹钟已解除", Toast.LENGTH_SHORT).show(); } }); buCancel2.setOnClickListener(new OnClickListener() { public void onClick(View v) { Intent intent = new Intent(MyClock.this, CallAlarm.class); /* 建立PendingIntent */ //注意第二个参数为1 PendingIntent sender = PendingIntent.getBroadcast(MyClock.this, 1, intent, 0); AlarmManager am; am = (AlarmManager) getSystemService(ALARM_SERVICE); am.cancel(sender); Toast.makeText(MyClock.this, "重复闹钟已解除", Toast.LENGTH_SHORT).show(); } }); } private String format(int x) { String s = "" + x; if (s.length() == 1) s = "0" + s; return s; }
2.CallAlarm.java(BroadcastReceiver)
public class CallAlarm extends BroadcastReceiver { @Override public void onReceive(Context context, Intent intent) { Intent i = new Intent(context, AlarmAlert.class); i.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK); context.startActivity(i); } }
3.AlarmAlert.java(闹钟响应)
public class AlarmAlert extends Activity { @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); /* 跳出的闹铃警示 */ new AlertDialog.Builder(AlarmAlert.this) .setIcon(R.drawable.clock) .setTitle("闹钟响了!!") .setMessage("赶快起床吧!!!") .setPositiveButton("关掉他", new DialogInterface.OnClickListener() { public void onClick(DialogInterface dialog, int whichButton) { /* 关闭Activity */ AlarmAlert.this.finish(); } }).show(); } }
manifest.xml
<activity android:name=".MyClock" android:label="@string/app_name"> </activity> <activity android:name=".AlarmAlert" android:label="@string/app_name"> </activity> <receiver android:name=".CallAlarm" android:process=":remote" />
发表评论
-
Gesture获取屏幕手写事件并显示相应信息
2012-03-13 16:53 1413private GestureLibrary ge ... -
SensorManager判断手机指向方向
2012-03-13 16:29 2916public class GetPosition ext ... -
BroadcastReceiver开机便运行的程序
2012-03-13 11:29 1171public class BeginFromBoo ... -
Service将广播信息传递给
2012-03-12 21:06 1431BroadcastReceiver捕捉到信息后关闭服务 ... -
BroadcastReceiver监听短信发送的状态
2012-03-12 20:22 4681添加权限 <uses-permission ... -
BroadcastReceiver一个星期每天更换不同的壁纸
2012-03-12 12:22 1470添加权限 <uses-permission ... -
SensorEventListener手机翻背静音震动
2012-03-12 12:23 1509添加震动权限 <uses-permission ... -
AudioManager黑名单来电自动静音
2012-03-12 12:23 2439添加权限 <uses-permission ... -
PhoneState查看拨号器状态及显示联系人信息
2012-03-11 10:33 1275添加权限 <uses-perm ... -
Service与Runnable开始与停止系统服务
2012-03-11 10:33 3378两部分ControlService.java(Ac ... -
查看Battery剩余电量
2012-03-10 14:06 1053private int intLevel; p ... -
BroadcastReceiver实时短信提醒
2012-03-10 13:31 1105添加权限 <uses-permission ... -
Gesture建立手写笔画图案
2012-03-10 00:34 1058添加权限 <uses-permission ... -
TelephonyManager获取电信网络和手机信息
2012-03-10 00:34 1838添加权限 <uses-permission ... -
任务管理器查看正在运行的程序和服务
2012-03-09 10:15 1289添加权限 <uses-perm ... -
SIM获取手机SIM卡的信息
2012-03-09 09:49 1399添加权限: <uses-permission ... -
Wallpaper获取当前、修改和还原自带壁纸
2012-03-09 09:50 2795添加权限: <uses-permission ... -
ContactsContract获取联系人信息及双向查找联系人信息
2012-03-08 12:24 2596添加权限: <uses-permission ... -
Vibrator结合ToggleButton控件的震动提示
2012-03-08 12:24 1235添加权限: <uses-permission ... -
通过Gmail发送邮件
2012-03-07 14:37 1026private EditText mEditTex ...
相关推荐
综上所述,`PendingIntent`和`AlarmManager`是实现可定时响起闹钟的关键组件。它们结合使用,可以创建出一个可靠且用户友好的闹钟功能。在实际开发中,理解并熟练掌握这两个组件的用法,对于构建高效、稳定的Android...
在Android平台上,实现一个完美的定时闹钟功能需要深入理解系统级服务、BroadcastReceiver、PendingIntent以及AlarmManager等关键组件的工作原理。以下是对标题和描述中所述知识点的详细说明: 1. **AlarmManager**...
综上所述,"Android简易闹钟"项目主要涉及了Android的AlarmManager和BroadcastReceiver两大核心组件,通过它们实现定时任务的调度和执行。在实际开发中,还需要考虑系统的兼容性、用户体验以及电池消耗等因素,以...
5. **Notification**:当闹钟响起时,通常会通过Notification向用户展示提醒。开发者需要使用NotificationCompat库创建闹钟通知,并设置其图标、标题、内容以及行为(如取消闹钟或设置为已忽略)。 6. **UI设计**:...
1. **AlarmManager**: Android系统的`AlarmManager`服务是实现定时任务的核心组件,如设置闹钟。它可以安排一次性或周期性的事件,并在指定时间通过BroadcastReceiver触发。 2. **BroadcastReceiver**: 当...
4. **Service**: 在闹钟应用中,可能需要创建一个`Service`来处理闹钟响起后的逻辑,比如播放铃声、显示通知等。虽然这个Demo没有包含铃声播放,但通常情况下,服务会用来在后台持续运行,直到用户关闭闹钟。 5. **...
4. **Notification**: 闹钟响起时,通常会通过通知(Notification)来提醒用户。Notification是安卓系统提供的一种向用户显示消息的方式,即使应用在后台或完全关闭,用户也能看到提醒。 5. **SharedPreferences**:...
在Android系统中,闹钟(AlarmClock)是用户日常生活中不可或缺的功能之一。本篇文章将基于提供的"闹钟安卓源码 AlarmClock 源代码.zip",详细解析Android闹钟应用的源码,带你深入了解其内部工作机制。 首先,我们...
总的来说,创建一个Android简单闹钟应用涉及到AlarmManager的定时触发、BroadcastReceiver的响应机制、MediaPlayer的音频播放以及AudioManager的音量控制。掌握这些知识点,对于开发Android平台上的实用工具应用是...
4. **Notification**: 闹钟响起时,通常会通过Notification向用户展示提醒。Notification是Android系统提供的一种通知机制,可以在状态栏显示图标和消息,让用户知道有新的事件发生。在闹钟应用中,我们可以自定义...
首先,Android 闹钟功能的核心在于`AlarmManager`类,它是Android SDK中的一个系统服务,负责调度定时事件。`AlarmManager`可以设置一次性或周期性的闹钟,并在指定的时间触发广播意图(Broadcast Intent)。在`...
在Android系统中,闹钟功能是用户日常生活中不可或缺的一部分,它允许用户设定特定时间的提醒或者定时任务。本文将深入探讨Android闹钟功能的源代码实现,并基于提供的"DeskClock"文件名,推测这是一个Android桌面...
3. 保持CPU唤醒:使用WakeLock防止设备在闹钟触发时进入休眠状态,保证闹钟准时响起。 4. 选择合适的触发模式:如ELAPSED_REALTIME_WAKEUP或RTC_WAKEUP,前者从系统启动时间计算,后者从协调世界时(UTC)计算,两者都...
1. **AlarmManager服务**:AlarmManager是Android系统提供的用于调度定时任务的服务。开发者可以通过AlarmManager设置一次性或周期性的闹钟,它会根据系统的优化策略在合适的时间触发BroadcastReceiver。 2. **...
在这个应用中,Service可能会用来持续监控时间,触发闹钟事件,或者在闹钟响起时播放铃声。为了确保服务的稳定性和避免内存泄漏,开发者需要正确地管理和启动Service,同时考虑在适当的时候停止服务。 构建环境方面...
4. **Notification**: 闹钟响起时,用户需要接收到通知。`Notification`类用于在状态栏创建提醒,通常包含标题、文本、图标等信息。`NotificationCompat.Builder`简化了创建通知的过程,支持各种兼容性特性。 5. **...
1. **AlarmManager**: Android系统中的`AlarmManager`服务是负责调度定时任务的核心组件,如设置闹钟。它允许应用程序安排一次性或周期性的操作,即使应用本身没有运行,这些操作也能被触发。 2. **...
总结一下,本示例通过`Android Service`实现了一个闹钟服务,结合了`AlarmManager`的定时功能和`PendingIntent`的意图触发机制。Service在后台运行,不受用户界面的影响,而AlarmManager确保了即使设备休眠也能在...
4. **Notification**: 闹钟响起时,通常需要通过通知栏提醒用户。`Notification`类是构建和管理这些通知的工具。在`MyAlarmClock`中,会有一个创建`Notification`的逻辑,包括设置通知标题、文本、图标、声音和振动...
- AlarmManager用于设置定时触发闹钟,它可以精确到秒,确保在指定时间唤醒设备。 4. **用户交互**: - 设置闹钟时,用户可能会通过触摸屏输入,因此需要处理触摸事件。 - 涉及到DialogFragment或者AlertDialog...