社区
Android
帖子详情
想写个整点报时的小程序。
a12321321321312321
2011-01-19 05:26:45
大家给点思路。3Q
...全文
3330
14
打赏
收藏
想写个整点报时的小程序。
大家给点思路。3Q
复制链接
扫一扫
分享
转发到动态
举报
AI
作业
写回复
配置赞助广告
用AI写文章
14 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
a220315410
2011-01-22
打赏
举报
回复
[Quote=引用 13 楼 drsmart 的回复:]
引用 10 楼 f800051235 的回复:
引用 1 楼 tqwboy 的回复:
使用service在后台不断扫描系统时间,扫描到整点的就启动铃声播放,注意改变电源管理模式,不要让cpu睡眠
我设置一分钟扫描一次,是不是很费电?
楼上的回复没有一个沾边的,android有Alarm这个类,处理闹铃的到时候会自动执行你的程序的。
[/Quote]
嘛,更正一点,原生的Android系统应该是没有Alarm这个类的(起码2.2版本的没有,之后的有没有我就不知道了)。DrSmart说的Alarm类其实在AlarmClock项目中(2.3以后项目名改为DeskClock),就是闹钟的那个项目。
从AlarmClock项目中抽取Alarm和Alarms两个类可以让你自由的操作闹钟,你可以随意的添加,删除,修改闹钟,嘛的确能够实现正点报时的功能,不过那样界面就和闹钟一样了。
为了区别开的话,你最好自己实现。使用android.app.AlarmManager这个类你可是比较轻松的实现这个整点报时的功能,利用AlarmManager.setRepeating可以设置一个间隔为1小时的重复闹钟,你就不需要去扫描系统时间了。
实现一个receiver来接收AlarmManager发出的广播,然后准备一个activity(用于在界面上提醒),或者准备一个service(用户播放报时的音乐),当然最好是activity和service都写啦,这样你就可以获得AlarmClock一样效果。
建议你看一下AlarmClock的源码,看懂这份源码以后,你会觉得整点报时的功能很简单。
DrSmart
2011-01-21
打赏
举报
回复
[Quote=引用 10 楼 f800051235 的回复:]
引用 1 楼 tqwboy 的回复:
使用service在后台不断扫描系统时间,扫描到整点的就启动铃声播放,注意改变电源管理模式,不要让cpu睡眠
我设置一分钟扫描一次,是不是很费电?
[/Quote]
楼上的回复没有一个沾边的,android有Alarm这个类,处理闹铃的到时候会自动执行你的程序的。
sharplover
2011-01-21
打赏
举报
回复
使用service 来做。
tqwboy
2011-01-21
打赏
举报
回复
[Quote=引用 10 楼 f800051235 的回复:]
引用 1 楼 tqwboy 的回复:
使用service在后台不断扫描系统时间,扫描到整点的就启动铃声播放,注意改变电源管理模式,不要让cpu睡眠
我设置一分钟扫描一次,是不是很费电?
[/Quote]
还算好吧,我在项目中也是设置为一分钟扫描一次。因为不能让cpu睡眠,所以耗电那是肯定的,这也没办法,那是现在的电池技术发展落后的原因。
a12321321321312321
2011-01-21
打赏
举报
回复
[Quote=引用 1 楼 tqwboy 的回复:]
使用service在后台不断扫描系统时间,扫描到整点的就启动铃声播放,注意改变电源管理模式,不要让cpu睡眠
[/Quote]
我设置一分钟扫描一次,是不是很费电?
ameyume
2011-01-20
打赏
举报
回复
[Quote=引用 1 楼 tqwboy 的回复:]
使用service在后台不断扫描系统时间,扫描到整点的就启动铃声播放,注意改变电源管理模式,不要让cpu睡眠
[/Quote]
学习,想到了前面的取得系统时间,没想到后面的不让cpu睡眠。
a12321321321312321
2011-01-20
打赏
举报
回复
[Quote=引用 3 楼 dinjay 的回复:]
http://zxandroid.javaeye.com/blog/419305
简单的闹钟使用
[/Quote]
谢谢我先看看。。
a12321321321312321
2011-01-20
打赏
举报
回复
[Quote=引用 2 楼 peijiangping1989 的回复:]
这个是我写的希望对你有帮助。
package com.love;
import java.text.SimpleDateFormat;
import java.util.Date;
import java.util.HashMap;
import java.util.Map;
import java.util.Set;
import com.love.R;
import……
[/Quote]
能不能代码给我邮箱发份。。。谢谢。
fanlvlgh@gmail.com
dinjay
2011-01-20
打赏
举报
回复
http://zxandroid.javaeye.com/blog/419305
简单的闹钟使用
小裴同学
2011-01-20
打赏
举报
回复
这个是我写的希望对你有帮助。
package com.love;
import java.text.SimpleDateFormat;
import java.util.Date;
import java.util.HashMap;
import java.util.Map;
import java.util.Set;
import com.love.R;
import android.app.Activity;
import android.os.Bundle;
import android.os.Handler;
import android.os.Message;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;
import android.widget.CheckBox;
import android.widget.EditText;
import android.widget.Spinner;
import android.widget.TextView;
public class Time extends Activity {
private EditText EditText01;//EditText01������ʾ��ͬ������
private EditText EditText02;//�������벻ͬ�IJ�����
private TextView TextView01;//��ʾ��ǰʱ��
private Button Button01;//��ʱ��İ�ť
private Spinner Spinner_001;
private Spinner Spinner_002;
private Spinner Spinner_011;
private Spinner Spinner_012;
private EditText EditText_001;
private EditText EditText_002;
private CheckBox CheckBox01;//�Ƿ���ʱ���
private boolean b1=false;//�Ƿ�������ʱ���
private String time;//���ڵ�ǰʱ��
private String s1 = "";//�����û������ʱ��
private String s2 = "";//��ͬ����
private Date d1;//��ǰʱ��
private Map<String, String> dd = new HashMap<String, String>();//����ʱ���
private Handler mHandler = new Handler() {//����ui
public void handleMessage(Message msg) {//��ȡ��Ϣ�ж�����
switch (msg.what) {
case 1:
updateTitle();
break;
}
};
};
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
EditText01 = (EditText) findViewById(R.id.EditText01);
EditText02 = (EditText) findViewById(R.id.EditText02);
EditText_001 = (EditText) findViewById(R.id.EditText_001);
EditText_002 = (EditText) findViewById(R.id.EditText_002);
TextView01 = (TextView) findViewById(R.id.TextView01);
Spinner_001=(Spinner)findViewById(R.id.Spinner_001);
Spinner_002=(Spinner)findViewById(R.id.Spinner_002);
Spinner_011=(Spinner)findViewById(R.id.Spinner_011);
Spinner_012=(Spinner)findViewById(R.id.Spinner_012);
CheckBox01=(CheckBox)findViewById(R.id.CheckBox01);
Button01=(Button)findViewById(R.id.Button01);
Button01.setOnClickListener(new ButtonListener());//�������
new Thread(new myThread()).start();//�����߳�
}
class ButtonListener implements OnClickListener{
@Override
public void onClick(View v) {
// TODO Auto-generated method stub
//�ж�������ʱ���û
if(EditText02.getText()==null||EditText_001.getText()==null
||EditText_002.getText()==null){
b1=true;
}
//���ʱ���Ͳ����ı���
else{
if(CheckBox01.isChecked()){
s1=String.valueOf(Spinner_001.getSelectedItem())+"-"
+String.valueOf(Spinner_002.getSelectedItem())+"-"
+String.valueOf(Spinner_011.getSelectedItem())+" "
+String.valueOf(Spinner_012.getSelectedItem())+":"
+String.valueOf(EditText_001.getText())+":"
+String.valueOf(EditText_002.getText());
s2=String.valueOf(EditText02.getText());
dd.put(s1, s2);
s1="";
s2="";
}else
//����ʱ��ĵĻ�ȡ
{
s1=String.valueOf(Spinner_001.getSelectedItem())+"-"
+String.valueOf(Spinner_002.getSelectedItem())+"-"
+String.valueOf(Spinner_011.getSelectedItem())+" "
+String.valueOf(Spinner_012.getSelectedItem())+":"
+String.valueOf(EditText_001.getText())+":"
+String.valueOf(EditText_002.getText());
s2=String.valueOf(EditText02.getText());
}
}
}
}
class myThread implements Runnable {
public void run() {
while (true) {//�߳�1��˯��һ��ѭ��������Ϣ
Message message = new Message();
message.what = 1;
mHandler.sendMessage(message);
try {
Thread.sleep(1000);
} catch (InterruptedException e) {
Thread.currentThread().interrupt();
}
}
}
}
public void updateTitle() {
d1 = new Date();//��ȡ��ǰʱ��ת����ʽ
time = new SimpleDateFormat("yyyy-MM-dd hh:mm:ss").format(d1);
TextView01.setText(time);//��ʾ��ǰʱ�������
if(b1==true){//û��������ʱ�����ʾ
EditText01.setText("ͬѧ����������");
b1=false;
}
else{
if(CheckBox01.isChecked()){
Set<String> set = dd.keySet();
for (String s : set) {//����map��ȡʱ�����в�ͬ�IJ���
if (s.equals(time)) {
if (dd.get(s).equals("eat")) {
EditText01.setText("ͬѧ���"+dd.get(s)+"��Ŷ��");
}
if (dd.get(s).equals("xizao")) {
EditText01.setText("ͬѧ���"+dd.get(s)+"��Ŷ��");
}
if (dd.get(s).equals("sleep")) {
EditText01.setText("ͬѧ���"+dd.get(s)+"��Ŷ��");
}
}
}
}
else{
if (time.equals(s1)) { //����ʱ���IJ�����
EditText01.setText("ͬѧ���"+s2+"��Ŷ��");
}
}
}
}
}
Crossgate_J
2011-01-20
打赏
举报
回复
共同学习进步
Sodino
2011-01-20
打赏
举报
回复
[Quote=引用 3 楼 dinjay 的回复:]
http://zxandroid.javaeye.com/blog/419305
简单的闹钟使用
[/Quote]
实用。
tqwboy
2011-01-19
打赏
举报
回复
使用service在后台不断扫描系统时间,扫描到整点的就启动铃声播放,注意改变电源管理模式,不要让cpu睡眠
一个
整点
报时
的
小程序
一个
整点
,半点
报时
的
小程序
。ctrl+X可以报现在时间,不过只能精确到半点或
整点
。源码稍后共享
经典
整点
报时
语音文件
经典
整点
报时
语音文件:里面包含24个mp3文件,对应24个小时的
整点
报时
. 24 clock broadcast audio mp3 file.
语音
整点
报时
,mp3格式.rar
做一个语音
报时
钟,语音文件在网上下了很多,都不满意,这是自己合成的,真人发音,0点~23点整
报时
,简洁实用。
电脑语音
整点
报时
软件
可以设定闹铃
整点
有个很稚气的小朋友
报时
,相当清新
Android
80,472
社区成员
91,384
社区内容
发帖
与我相关
我的任务
Android
移动平台 Android
复制链接
扫一扫
分享
社区描述
移动平台 Android
android
android-studio
androidx
技术论坛(原bbs)
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章