刚学android  这是一个闹钟目的是给定一个时间 然后到了指定时间后去启动闹钟  但是只要一运行程序闹钟就会响  因为很多代码意思不了解 所以解决不了  希望有大神给个指导
package com.example.alarm;import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Calendar;
import java.util.Date;import android.os.Bundle;
import android.app.Activity;
import android.app.AlarmManager;
import android.app.PendingIntent;
import android.app.Service;
import android.app.TimePickerDialog;
import android.content.Intent;import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;
import android.widget.TimePicker;
import android.widget.Toast;
public class MainActivity extends Activity  
{  
    Button setTime;  
    AlarmManager aManager;  
    Calendar currentTime = Calendar.getInstance();  
    @Override  
    public void onCreate(Bundle savedInstanceState)  
    {  
        super.onCreate(savedInstanceState);  
        setContentView(R.layout.activity_main);  
        // 获取程序界面的按钮  
        //setTime = (Button) findViewById(R.id.setTime);  
        // 获取AlarmManager对象  
        aManager = (AlarmManager) getSystemService(Service.ALARM_SERVICE);  
        //为“设置闹铃”按钮绑定监听器。  
        Calendar currentTime = Calendar.getInstance();
        String dateString = "2013-09-07";
        String pattern = "yyyy'-'MM'-'dd";         SimpleDateFormat dateFormat = new SimpleDateFormat(pattern);
        Date date;
try {
date = dateFormat.parse(dateString);
long milSecond = date.getTime();
   // 指定启动AlarmActivity组件  
                Intent intent = new Intent(MainActivity.this  
                    , AlarmActivity.class);  
                // 创建PendingIntent对象  
                PendingIntent pi = PendingIntent.getActivity(  
                    MainActivity.this, 0, intent, 0);  
                Calendar c = Calendar.getInstance();  
               // c.setTimeInMillis(System.currentTimeMillis());  
                //System.out.println(System.currentTimeMillis());
                c.setTimeInMillis(milSecond);
                System.out.println(milSecond);
                System.out.println(System.currentTimeMillis());
                System.out.println(c.getTimeInMillis());
                // 根据用户选择时间来设置Calendar对象  
                c.set(Calendar.PM, 0);
                c.set(Calendar.HOUR ,4);  
                c.set(Calendar.MINUTE , 10); 
                c.set(Calendar.SECOND , 0); ///////////////////////////////////////////////////////////////
                c.set(Calendar.MILLISECOND, 0);
                // 设置AlarmManager将在Calendar对应的时间启动指定组件  
                aManager.set(AlarmManager.RTC_WAKEUP  
                    , c.getTimeInMillis(), pi);   
                // 显示闹铃设置成功的提示信息  
                Toast.makeText(MainActivity.this ,   
                    "闹铃设置成功啦" , 5000).show();   } catch (ParseException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
        // 得到毫秒数
        
       
                   
                                 
       /* setTime.setOnClickListener(new OnClickListener()  
        {  
            @Override  
            public void onClick(View source)  
            {  
                Calendar currentTime = Calendar.getInstance();  
                // 创建一个TimePickerDialog实例,并把它显示出来。  
                new TimePickerDialog(MainActivity.this,  
                    0, // 绑定监听器  
                    new TimePickerDialog.OnTimeSetListener()  
                    {  
                        @Override  
                        public void onTimeSet(TimePicker tp, int hourOfDay,  
                            int minute)  
                        {  
                            // 指定启动AlarmActivity组件  
                            Intent intent = new Intent(MainActivity.this  
                                , AlarmActivity.class);  
                            // 创建PendingIntent对象  
                            PendingIntent pi = PendingIntent.getActivity(  
                                MainActivity.this, 0, intent, 0);  
                            Calendar c = Calendar.getInstance();  
                            c.setTimeInMillis(System.currentTimeMillis());  
                            // 根据用户选择时间来设置Calendar对象  
                            c.set(Calendar.HOUR , hourOfDay);  
                            c.set(Calendar.MINUTE , minute); 
                            c.set(Calendar.SECOND , 0); ///////////////////////////////////////////////////////////////
                            c.set(Calendar.MILLISECOND, 0);
                            // 设置AlarmManager将在Calendar对应的时间启动指定组件  
                            aManager.set(AlarmManager.RTC_WAKEUP  
                                , c.getTimeInMillis(), pi);   
                            // 显示闹铃设置成功的提示信息  
                            Toast.makeText(MainActivity.this ,   
                                "闹铃设置成功啦" , 5000).show();  
                        }  
                    }, currentTime.get(Calendar.HOUR_OF_DAY)  
                    , currentTime.get(Calendar.MINUTE), false)  
                    .show();                  
            }  
        });*/  
    }  
}  
android