1

关于警报管理器的问题我有这个代码

Calendar cal = Calendar.getInstance();
    cal.add(Calendar.SECOND, 5);
     Integer prof=t.getProfile();
    String prof2=prof.toString();
    Intent intent = new Intent(this, AlarmActivity.class);
    intent.putExtra("prof",(String)prof2);
    PendingIntent pendingIntent = PendingIntent.getActivity(this,(int)t.getId(), intent, PendingIntent.FLAG_CANCEL_CURRENT);
    AlarmManager am =
            (AlarmManager)getSystemService(Activity.ALARM_SERVICE);
    am.set(AlarmManager.RTC_WAKEUP, cal.getTimeInMillis(),
            pendingIntent);

它尚未完成......我知道我可以使用 cal.set(Calendar.MINUTES,minutes); 设置日历的时间 几个小时都一样。。

但是我如何设置日期?例如 - 星期一?day_of_week 设置了吗?如果是这样 - 范围是 0-6 还是 1-7?最低值是周一还是周日?

另外,如果我要进行重复活动(每周一次)-我应该制作新日历并设置星期几/小时/分钟吗?还是我应该使用 getInstance() 并更改一周中的小时/分钟/天?

关于报警管理器。当你发出警报时,你给出的 request_code 应该是唯一的。如果我重新启动手机 - 所有请求代码是否都保留在手机的警报管理器中?如果没有 - 如何让他们留下来......如果是 - 我如何在测试时删除不必要的?

4

2 回答 2

1

您还可以使用:

cal.add(Calendar.DATE, 7) 

将当前日历设置的日历时间设置为一周(并减去等)。

我认为这里可能需要链接到文档:

http://developer.android.com/reference/java/util/Calendar.html

关于您的第二个问题,没有警报管理器不会在手机重新启动时持续存在,您必须将它们保存在共享首选项或 SQL 中,然后在下次手机(和您的应用程序)重新启动时重新加载警报......

要取消警报,请使用 alarm.cancel(pendingIntent)。您需要自行跟踪的pendingIntents。

于 2012-12-11T21:53:13.233 回答
0

可以在此处找到如何设置日历的示例。此外,Android 开发人员的API显示了多种设置日期的方法

于 2012-12-11T21:52:15.590 回答