首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Android通知问题

Android通知问题
EN

Stack Overflow用户
提问于 2012-12-29 14:56:55
回答 1查看 93关注 0票数 0

我正在尝试实现的是通知,即使用通知管理器的警报。我要求用户选择日期和时间,并设置alert.Set警报有一些值,如无,准时,前5分钟,前15分钟,前30分钟,因此on..Its工作良好,除了NONE..If用户选择无然后通知不应该go.But,而是它直接away.The代码,我已经做了下面。请为列表中的第一个选项it.Since提供建议,如果用户选择none.So,我不会做任何事情。

代码语言:javascript
复制
if(alert.equalsIgnoreCase("On Time"))
{
    Calendar cal=Calendar.getInstance();
    cal.set(Calendar.DAY_OF_MONTH,reminderday);
    cal.set(Calendar.MONTH,remindermonth);
    cal.set(Calendar.YEAR,reminderyear);
    cal.set(Calendar.HOUR_OF_DAY,hour);
    cal.set(Calendar.MINUTE,minute);
    starttime=cal.getTimeInMillis();
}
else if(alert.equalsIgnoreCase("5 Minutes Before"))
{
    Log.i("inside","5 mins before");
    Calendar cal=Calendar.getInstance();
    cal.set(Calendar.DAY_OF_MONTH,reminderday);
    cal.set(Calendar.MONTH,remindermonth);
    cal.set(Calendar.YEAR,reminderyear);
    cal.set(Calendar.HOUR_OF_DAY,hour);
    cal.set(Calendar.MINUTE,minute-5);
    starttime=cal.getTimeInMillis();
}

else if(alert.equalsIgnoreCase("15 Minutes Before"))
{
    Log.i("inside","15 mins before");
    Calendar cal=Calendar.getInstance();
    cal.set(Calendar.DAY_OF_MONTH,reminderday);
    cal.set(Calendar.MONTH,remindermonth);
    cal.set(Calendar.YEAR,reminderyear);
    cal.set(Calendar.HOUR_OF_DAY,hour);
    cal.set(Calendar.MINUTE,minute-15);
    starttime=cal.getTimeInMillis();
}
else if(alert.equalsIgnoreCase("30 Minutes Before"))
{
    Log.i("inside","30 mins before");
    Calendar cal=Calendar.getInstance();
    cal.set(Calendar.DAY_OF_MONTH,reminderday);
    cal.set(Calendar.MONTH,remindermonth);
    cal.set(Calendar.YEAR,reminderyear);
    cal.set(Calendar.HOUR_OF_DAY,hour);
    cal.set(Calendar.MINUTE,minute-30);
    starttime=cal.getTimeInMillis();
}
else if(alert.equalsIgnoreCase("1 Hour Before"))
{
    Log.i("inside","1 hr before");
    Calendar cal=Calendar.getInstance();
    cal.set(Calendar.DAY_OF_MONTH,reminderday);
    cal.set(Calendar.MONTH,remindermonth);
    cal.set(Calendar.YEAR,reminderyear);
    cal.set(Calendar.HOUR_OF_DAY,hour-1);
    cal.set(Calendar.MINUTE,minute);
    starttime=cal.getTimeInMillis();
}
else if(alert.equalsIgnoreCase("2 Hour Before"))
{
    Log.i("inside","2 hr before");
    Calendar cal=Calendar.getInstance();
    cal.set(Calendar.DAY_OF_MONTH,reminderday);
    cal.set(Calendar.MONTH,remindermonth);
    cal.set(Calendar.YEAR,reminderyear);
    cal.set(Calendar.HOUR_OF_DAY,hour-2);
    cal.set(Calendar.MINUTE,minute);
    starttime=cal.getTimeInMillis();
}
else if(alert.equalsIgnoreCase("1 Day Before"))
{
    Log.i("inside","1 day before");
    Calendar cal=Calendar.getInstance();
    cal.set(Calendar.DAY_OF_MONTH,reminderday-1);
    cal.set(Calendar.MONTH,remindermonth);
    cal.set(Calendar.YEAR,reminderyear);
    cal.set(Calendar.HOUR_OF_DAY,hour);
    cal.set(Calendar.MINUTE,minute);
    starttime=cal.getTimeInMillis();
}
else if(alert.equalsIgnoreCase("2 Day Before"))
{
    Log.i("inside","2 day before");
    Calendar cal=Calendar.getInstance();
    cal.set(Calendar.DAY_OF_MONTH,reminderday-2);
    cal.set(Calendar.MONTH,remindermonth);
    cal.set(Calendar.YEAR,reminderyear);
    cal.set(Calendar.HOUR_OF_DAY,hour);
    cal.set(Calendar.MINUTE,minute);
    starttime=cal.getTimeInMillis();
}
else if(alert.equalsIgnoreCase("1 Week Before"))
{
    Log.i("inside","1 week before");
    Calendar cal=Calendar.getInstance();
    cal.set(Calendar.DAY_OF_MONTH,reminderday-7);
    cal.set(Calendar.MONTH,remindermonth);
    cal.set(Calendar.YEAR,reminderyear);
    cal.set(Calendar.HOUR_OF_DAY,hour);
    cal.set(Calendar.MINUTE,minute);
    starttime=cal.getTimeInMillis();
}
else
        {
            starttime=-1;   
        }
PendingIntent pendingIntent = PendingIntent.getBroadcast(this,0,intent, PendingIntent.FLAG_UPDATE_CURRENT);
            am.set(AlarmManager.RTC_WAKEUP,starttime, pendingIntent);

我得到的问题是,因为starttime值将是0,如果它表示无。那么我应该为starttime设置什么值,这样它就不会发生。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2012-12-29 15:01:46

代码语言:javascript
复制
if (starttime > 0){    
    PendingIntent pendingIntent = PendingIntent.getBroadcast(this,0,intent, PendingIntent.FLAG_UPDATE_CURRENT);
                am.set(AlarmManager.RTC_WAKEUP,starttime, pendingIntent);    
}

改用上面的代码。

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/14079470

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档