当前位置:编程学习 > wap >>

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

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

设置闹钟代码:

// 获取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();
         
    }
}

--------------------编程问答-------------------- 我昨晚做闹钟,也遇到过这种问题。 --------------------编程问答--------------------
引用 1 楼  的回复:
我昨晚做闹钟,也遇到过这种问题。


请问你解决了吗? --------------------编程问答-------------------- 顶上去继续问……问题还没有解决…… --------------------编程问答-------------------- 时间没有设置好,可以在          
c.set(Calendar.HOUR , hourOfDay);
c.set(Calendar.MINUTE , minute);
前后 各加上一句log
Log.d(TAG,"current time is "+c.getTime());
看打印结果 就知道为什么了 --------------------编程问答-------------------- 你可能需要把Calendar.HOUR改成Calendar.HOUR_OF_DAY,

参考下开发文档里的说明:
HOUR_OF_DAY is used for the 24-hour clock
HOUR is used for the 12-hour clock
--------------------编程问答-------------------- 你这个闹钟还有问题就是,你设置时间的时候没有设定秒数,他还会保存原来时间里的秒数。
补充:移动开发 ,  Android
CopyRight © 2012 站长网 编程知识问答 www.zzzyk.com All Rights Reserved
部份技术文章来自网络,