Android 设置提醒后立即通知,即使选择长时间

Android 设置提醒后立即通知,即使选择长时间,android,notifications,alarmmanager,Android,Notifications,Alarmmanager,我正在尝试制作一个提醒应用程序。一切都很好,只是问题是点击保存按钮后会立即通知。3-10秒后。即使我选择了很长的一段时间 这是我从用户那里设置值的类代码 package com.logictex.docchat约会; 导入android.app.Activity; 导入android.app.DatePickerDialog; 导入android.app.Dialog; 导入android.app.TimePickerDialog; 导入android.content.SharedRefere

我正在尝试制作一个提醒应用程序。一切都很好,只是问题是点击保存按钮后会立即通知。3-10秒后。即使我选择了很长的一段时间

这是我从用户那里设置值的类代码

package com.logictex.docchat约会;
导入android.app.Activity;
导入android.app.DatePickerDialog;
导入android.app.Dialog;
导入android.app.TimePickerDialog;
导入android.content.SharedReferences;
导入android.database.Cursor;
导入android.os.Bundle;
导入android.preference.PreferenceManager;
导入android.support.design.widget.TextInputLayout;
导入android.text.TextUtils;
导入android.util.Log;
导入android.view.view;
导入android.widget.Button;
导入android.widget.DatePicker;
导入android.widget.EditText;
导入android.widget.TimePicker;
导入android.widget.Toast;
导入com.logictex.rementer.rementerManager;
导入com.logictex.rementer.rementersdbadapter;
导入java.text.ParseException;
导入java.text.simpleDataFormat;
导入java.util.Calendar;
导入java.util.Date;
公共类提醒编辑活动扩展活动{
// 
//对话框常数
//
私有静态最终整数日期选择器对话框=0;
私有静态最终整数时间选择器对话框=1;
// 
//日期格式
//
私有静态最终字符串日期\u格式=“dd-MM-yyyy”;
私有静态最终字符串时间\u FORMAT=“hh:mm”;
公共静态最终字符串日期\时间\格式=“dd-MM-yyy-kk:MM:ss”;
私有编辑文本mTitleText;
私人编辑文本;
私有文本输入布局输入布局;
私有按钮mDateButton;
私有按钮mTimeButton;
专用按钮mConfirmButton;
私人长mRowId;
私人提醒器适配器MDB帮助器;
私人日历;
@凌驾
创建时受保护的void(Bundle savedInstanceState){
super.onCreate(savedInstanceState);
mDbHelper=新的提醒器数据库适配器(此);
setContentView(R.layout.rements\u edit);
mCalendar=Calendar.getInstance();
mTitleText=(EditText)findViewById(R.id.title);
mBodyText=(EditText)findViewById(R.id.body);
inputLayoutTitle=(TextInputLayout)findViewById(R.id.input\u layout\u title);
mDateButton=(按钮)findViewById(R.id.rements\u date);
mTimeButton=(按钮)findViewById(R.id.remention\u time);
mConfirmButton=(按钮)findViewById(R.id.confirm);
mRowId=savedInstanceState!=null?savedInstanceState.getLong(提醒器dbadapter.KEY\u ROWID)
:null;
registerButtonListenersAndSetDefaultText();
}
私有void setRowIdFromIntent(){
if(mRowId==null){
Bundle extras=getIntent().getExtras();
mRowId=extras!=null?extras.getLong(rementersdbadapter.KEY\u ROWID)
:null;
}
}
@凌驾
受保护的void onPause(){
super.onPause();
mDbHelper.close();
}
@凌驾
受保护的void onResume(){
super.onResume();
mDbHelper.open();
setRowIdFromIntent();
populateFields();
}
@凌驾
受保护的对话框onCreateDialog(int id){
开关(id){
案例日期\u选取器\u对话框:
返回showDatePicker();
案例时间\u选取器\u对话框:
返回showTimePicker();
}
返回super.onCreateDialog(id);
}
私有日期选择器Dialog showDatePicker(){
DatePickerDialog datePicker=new DatePickerDialog(RememberEdit.this,new DatePickerDialog.OnDateSetListener(){
@凌驾
公共void onDateSet(日期选择器视图,整数年,整数月,整数月){
mCalendar.set(日历年、年份);
mCalendar.set(日历月、月、年);
mCalendar.set(Calendar.DAY/u/u月,dayOfMonth);
UpdateDataButtonText();
}
},mCalendar.get(Calendar.YEAR),mCalendar.get(Calendar.MONTH),mCalendar.get(Calendar.DAY/u月));
返回日期选择器;
}
私有时间选择器Dialog showTimePicker(){
TimePickerDialog timePicker=newtimepickerdialog(这是newtimepickerdialog.OnTimeSetListener(){
@凌驾
时间集上的公共void(时间选择器视图,整数小时日,整数分钟){
mCalendar.set(Calendar.HOUR\u OF_DAY,hourOfDay);
mCalendar.set(Calendar.MINUTE,MINUTE);
updateTimeButtonText();
}
},mCalendar.get(Calendar.HOUR\u OF_DAY),mCalendar.get(Calendar.MINUTE),true);
返回时间选择器;
}
私有无效注册表ButtonListenerSandSetDefaultText(){
mDateButton.setOnClickListener(新视图.OnClickListener(){
@凌驾
公共void onClick(视图v){
showDialog(日期选择器对话框);
}
}); 
mTimeButton.setOnClickListener(新视图.OnClickListener(){
@凌驾
公共void onClick(视图v){
showDialog(时间选择器对话框);
}
}); 
mConfirmButton.setOnClickListener(新视图.OnClickListener(){
公共void onClick(视图){
if(TextUtils.isEmpty(mTitleText.getText().toString())
{
inputLayoutTitle.setError(“字段不能为空”);
}
否则{
saveState();
设置结果(结果\正常);
Toast.makeText(rementereditactivity.this、getString(R.string.task\u saved\u message)、Toast.LENGTH\u SHORT.show();
完成();
}
}
});
UpdateDataButtonText();
updateTimeButtonText();
}
私有void populateFields(){
//仅填充文本框并更改日历日期
//如果数据库中的行不是空的。
if(mRowId!=null){
光标提醒=mDbHelper.FetchEmlerance(mRowId);
开始管理光标(提醒);
mTitleText.setText(rementer.getString(
getColumnIndexOrThrow(membersDBAdapter.KEY_TITLE));
mBodyText.setText(remention.ge
private void populateFields()  {



    // Only populate the text boxes and change the calendar date
    // if the row is not null from the database. 
    if (mRowId != null) {
    -------
    }
    else {
        SharedPreferences prefs = PreferenceManager.getDefaultSharedPreferences(this); 
        String defaultTitleKey = getString(R.string.pref_task_title_key); 
        String defaultTimeKey = getString(R.string.pref_default_time_from_now_key); 

        String defaultTitle = prefs.getString(defaultTitleKey, null);
        String defaultTime = prefs.getString(defaultTimeKey, null); 

        if(defaultTitle != null)
            mTitleText.setText(defaultTitle); 

        if(defaultTime != null)
            mCalendar.add(Calendar.MINUTE, Integer.parseInt(defaultTime));
    }
when.getTimeInMillis() + (3 * 1000)
alarmManager.set(AlarmManager.RTC_WAKEUP, when.getTimeInMillis()+ (3 * 1000) ,pi);
when.getTimeInMillis()+ ( 3* (60* 1000))
alarmManager.set(AlarmManager.RTC_WAKEUP, when.getTimeInMillis() +( 3* (60* 1000)) , pi);
 if(mCalendar.before(System.currentTimeMillis())){
     mCalendar.set(Calendar.DATE, 1);
 }