菜鸟问题:为什么我的代码无法调出闹钟?

mont00137 2012-05-17 03:04:40
按着书敲的代码,但是测试的时候时间到了无法响铃和提示时间到了,不知道问题在哪里,之前曾经可以的,后来不知道为什么不行了。求帮忙看看代码的问题……

设置闹钟代码:

// 获取AlarmManager对象
aManager = (AlarmManager) getSystemService(Service.ALARM_SERVICE);

clock = (Button)findViewById(R.id.clock);

clock.setOnClickListener(new Button.OnClickListener(){

@Override
public void onClick(View v) {
// TODO Auto-generated method stub
Calendar currentTime = Calendar.getInstance();
// 创建一个TimePickerDialog实例,并把它显示出来。
new TimePickerDialog(mContext,
0, // 绑定监听器
new TimePickerDialog.OnTimeSetListener()
{
@Override
public void onTimeSet(TimePicker tp, int hourOfDay,
int minute)
{
// 指定启动AlarmActivity组件
Intent intent = new Intent(mContext
, AlarmActivity.class);
// 创建PendingIntent对象
PendingIntent pi = PendingIntent.getActivity(
mContext, 0,intent, 0);
Calendar c = Calendar.getInstance();
c.setTimeInMillis(System.currentTimeMillis());
// 根据用户选择时间来设置Calendar对象
c.set(Calendar.HOUR , hourOfDay);
c.set(Calendar.MINUTE , minute);
// 设置AlarmManager将在Calendar对应的时间启动指定组件
aManager.set(AlarmManager.RTC_WAKEUP
, c.getTimeInMillis(), pi);
// 显示闹铃设置成功的提示信息
Toast.makeText(mContext ,
"闹铃设置成功啦" , 5000).show();
}
}, currentTime.get(Calendar.HOUR_OF_DAY)
, currentTime.get(Calendar.MINUTE), false)
.show();

}

});


提示时间到得代码(另一个activity):


public class AlarmActivity extends Activity {
/** Called when the activity is first created. */
MediaPlayer alarmMusic;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
alarmMusic = MediaPlayer.create(this, R.raw.alarm);
alarmMusic.setLooping(true);
alarmMusic.start();
new AlertDialog.Builder(AlarmActivity.this)
.setTitle("闹钟")
.setMessage("时间到了")
.setPositiveButton("确定",
new OnClickListener()
{ @Override
public void onClick(DialogInterface dialog,int which)
{
alarmMusic.stop();
AlarmActivity.this.finish();

}
}).show();

}
}

...全文
100 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
jtbreeze 2012-05-18
  • 打赏
  • 举报
回复
你这个闹钟还有问题就是,你设置时间的时候没有设定秒数,他还会保存原来时间里的秒数。
jtbreeze 2012-05-18
  • 打赏
  • 举报
回复
你可能需要把Calendar.HOUR改成Calendar.HOUR_OF_DAY,

参考下开发文档里的说明:
HOUR_OF_DAY is used for the 24-hour clock
HOUR is used for the 12-hour clock
jtbreeze 2012-05-18
  • 打赏
  • 举报
回复
时间没有设置好,可以在
c.set(Calendar.HOUR , hourOfDay);
c.set(Calendar.MINUTE , minute);
前后 各加上一句log
Log.d(TAG,"current time is "+c.getTime());
看打印结果 就知道为什么了
mont00137 2012-05-18
  • 打赏
  • 举报
回复
顶上去继续问……问题还没有解决……
mont00137 2012-05-17
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 的回复:]

我昨晚做闹钟,也遇到过这种问题。
[/Quote]

请问你解决了吗?
manoel 2012-05-17
  • 打赏
  • 举报
回复
我昨晚做闹钟,也遇到过这种问题。

80,360

社区成员

发帖
与我相关
我的任务
社区描述
移动平台 Android
androidandroid-studioandroidx 技术论坛(原bbs)
社区管理员
  • Android
  • yechaoa
  • 失落夏天
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧