Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/199.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android 使用报警管理器重复报警_Android_Alarmmanager_Android Alarms_Repeatingalarm - Fatal编程技术网

Android 使用报警管理器重复报警

Android 使用报警管理器重复报警,android,alarmmanager,android-alarms,repeatingalarm,Android,Alarmmanager,Android Alarms,Repeatingalarm,我正在尝试制作一个警报应用程序,它从用户那里获取多个“n”时间输入,并在这些特定时间发出警报。为此,我为小时和分钟条目创建了一个EditText数组。在启动按钮的onclick侦听器中,我希望对所有输入的时间输入初始化报警管理器 创建日历数组之后,我是否也应该创建一个意图数组、未决意图数组和报警管理器对象数组——每个日历对象一个 这是“我的开始”按钮的代码: public void setAlert(View view) { int length = editHour.length;

我正在尝试制作一个警报应用程序,它从用户那里获取多个“n”时间输入,并在这些特定时间发出警报。为此,我为小时和分钟条目创建了一个EditText数组。在启动按钮的onclick侦听器中,我希望对所有输入的时间输入初始化报警管理器

创建日历数组之后,我是否也应该创建一个意图数组、未决意图数组和报警管理器对象数组——每个日历对象一个

这是“我的开始”按钮的代码:

public void setAlert(View view) {

    int length = editHour.length;
    int h[] = new int[length];
    int m[] = new int[length];
    Calendar[] cal = new Calendar[length];
    for (int i = 0; i < length; i++) {
        cal[i] = Calendar.getInstance();
    }
    for (int i = 0; i < length; i++) {
        try {

            m[i] = Integer.parseInt(editHour[i].getText().toString());

            h[i] = Integer.parseInt(editMinute[i].getText().toString());

            cal[i].set(Calendar.HOUR, h[i]);
            cal[i].set(Calendar.MINUTE, m[i]);

            Intent intent = new Intent(this, AlarmService.class);
            PendingIntent pendingIntent = PendingIntent.getActivity(this,
                    12345, intent, PendingIntent.FLAG_CANCEL_CURRENT);
            AlarmManager alarmManager = (AlarmManager) getSystemService(ALARM_SERVICE);
            alarmManager.set(AlarmManager.RTC_WAKEUP,
                    cal[i].getTimeInMillis(), pendingIntent);
            Toast.makeText(this, "Alarm set", Toast.LENGTH_LONG).show();

        } catch (Exception ex) {
            ex.printStackTrace();
            System.out.print("OOPS!");

        }
    }
}
public void setAlert(视图){
int length=editHour.length;
int h[]=新的int[长度];
int m[]=新的int[长度];
日历[]校准=新日历[长度];
for(int i=0;i
如果您想要5个不同的警报,则您的悬挂式帐篷应该不同。你可以在一个悬挂式帐篷里放一个额外的东西,使它独一无二。但无论如何,您的代码至少应该生成一个警报。验证您在日历中设置的时间是否正确


无论如何,你不需要5个单独的日历、意图或任何东西。只需更新它们并设置警报。您完全不需要将它们保存在数组中。

您的请求代码是唯一的,这就是您的问题所在。您必须为不同的报警使用唯一的代码。您的代码和一个请求代码覆盖报警时间。(对不起,我的英语不好,这不是我的语言!)

使用此代码:

for (int i = 0; i < length; i++) {
    .
    .
    .

    int requestCode = (int) (System.currentTimeMillis());
    PendingIntent pendingIntent = PendingIntent.getActivity(this,
                requestCode, intent, PendingIntent.FLAG_CANCEL_CURRENT);
    Thread.sleep(10);

    .
    .
    .
}
for(int i=0;i
您不需要在对象中保存挂起的意图,只需设置报警即可。你的问题是什么?它是否工作?此代码不工作…没有生成报警…我的问题是taht…如果我总共有5次…如何调用我的AlarmService类5次…我需要5个日历对象…然后我需要5个不同的alarmmanager对象,有5种不同的意图和未决意图?我不想更新日历对象,因为我想存储用户输入的序列。并且,我将由用户同时获取所有条目,然后,一个启动按钮将用于同时设置所有报警。不使用日历阵列就可以做到这一点吗?