当前位置: 首页 > 知识库问答 >
问题:

怪异的报警管理者行为

陆耀
2023-03-14

我有两个广播接收器和两个意图,我想点击一个按钮,5米后开始广播1和10米后开始广播2,发生的是它们都在我点击后10米开始,我猜,意图不是唯一的,但我为它们每个设置了不同的reqeustCode。

按钮的onclick:

    Bundle bd = new Bundle();
    bd.putInt("mInt", i);

    Intent intent1 = new Intent(getActivity(), Broadcast_1.class);
    intent1.putExtras(bd);
    PendingIntent pendingIntent1 = PendingIntent.getBroadcast(getActivity().getApplicationContext(), i, intent1, PendingIntent.FLAG_UPDATE_CURRENT);
    AlarmManager alarmManager1 = (AlarmManager) getActivity().getApplicationContext().getSystemService(Context.ALARM_SERVICE);
    alarmManager1.setRepeating(AlarmManager.RTC, System.currentTimeMillis()+1000*60*5, 1000*60*10, pendingIntent1);
    Toast.makeText(getActivity(), "countdown started "+i ,Toast.LENGTH_SHORT).show();

    Intent intent2 = new Intent(getActivity(), Broadcast_1.class);
    intent2.putExtras(bd);
    PendingIntent pendingIntent2 = PendingIntent.getBroadcast(getActivity().getApplicationContext(), i+42212342, intent2, PendingIntent.FLAG_UPDATE_CURRENT);
    AlarmManager alarmManager2 = (AlarmManager) getActivity().getApplicationContext().getSystemService(Context.ALARM_SERVICE);
    alarmManager2.setRepeating(AlarmManager.RTC, System.currentTimeMillis()+1000*60*10, 1000*60*10, pendingIntent2);
public class Broadcast_1 extends BroadcastReceiver {

    @Override
    public void onReceive(Context context, Intent intent) {

        Calendar c = Calendar.getInstance();
        int seconds = c.get(Calendar.SECOND);
        int minutes = c.get(Calendar.MINUTE);
        ShowTextFragment.setText("Broadcast_1" + " at " + minutes + " : " + seconds);

    }

}

共有1个答案

南宫凯康
2023-03-14

您现在看到的问题是重复警报的工作方式。为了保持电池寿命,AlarmManager现在可以很自由地重新调度警报,以便将多个警报分组在一起。基本上,如果您需要任何类型的精确定时,您应该忘记使用setrepeating()。改用setexact()。如果你需要一个重复警报,只需在它熄灭时重置它。

 类似资料:
  • 下面是两个不同的,一个带有,另一个带有state 当您为这两个打开下拉菜单时,您将注意到for patient showboth和inverted(单击它时,在input字段中输入值)。在State中,它只是简单地显示状态 这些不同行为的原因是什么?我希望输入仅显示的像状态和在&中有不同的数据

  • 我之所以说怪异,是因为我不明白有人可能会告诉我什么在按预期工作。 我有一个带有LiveData成员的Android ViewModel,我在Main活动中观察到它来切换一些代码功能。LiveData对象在视图模型的构造函数中被分配初始值。 从理论上讲,一切都很好,只是在安装后第一次启动应用程序和随后启动应用程序之间,观察者的行为会发生变化。 在安装后的第一次启动期间,在我设置好观察者之后,它们会立

  • 嗨,我目前正在使用警报管理器。我写了下面给出的代码。根据代码,警报管理器应该在10秒后触发,但在我的代码中,警报管理器会立即触发。请帮助。 还有我的警报接收课 我已经在清单中添加了所需的权限。

  • 问题内容: 如何实现android 警报管理器? 问题答案: 从服务设置警报: 如果要设置在电话启动时重复发出警报: 向添加权限和服务: 并创建一个新类: