我的应用程序有两个不同的活动,让我们将它们命名为A和B.我在活动A中设置一个警报,并在5分钟后触发警报。我转到活动B并在那里做一些不到一分钟的事情。我回到活动A,这里发生的事情是警报再次登记,而不是之前的5分钟,从现在开始需要5分钟......为了清晰起见A - 注册警报 - 5分钟触发一个哔...移动到活动B,行动B - 做一些事情 - x分钟......回到行动A - 再次报警 - x + 5分钟触发蜂鸣声....
我不希望上述情况发生。我想仅在5分钟而不是x + 5时触发警报?有什么帮助吗?这真是让我烦恼......从星期四开始......
在行为A
AlarmManager am = (AlarmManager) getSystemService(Context.ALARM_SERVICE);
Intent checkIntent = new Intent(getApplicationContext(),Alarm_class.class);
checkIntent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
PendingIntent pi = PendingIntent.getBroadcast(this, 0, checkIntent, 0);
if(PendingIntent.getBroadcast(getBaseContext(), 0, checkIntent, PendingIntent.FLAG_NO_CREATE) != null)
{
Log.d("kunal", "Alarm is running");
if(log_days_came.equals("Three"))
{
Log.d("kunal","3 days selected to zip log file.");
// am.setInexactRepeating(AlarmManager.RTC_WAKEUP, System.currentTimeMillis(), 180000, pi);
am.setInexactRepeating(AlarmManager.RTC_WAKEUP, System.currentTimeMillis(), 2*60000, pi);
Log.d("kunal","after the pending intent 3.");
}
}
else
{
if(log_days_came == null)
{
Toast.makeText(getApplicationContext(), "configure the days to zip log files", Toast.LENGTH_LONG).show();
Log.d("kunal", "Alarm is not running");
}
}
if(log_days_came.equals("Three"))
{
Calendar calendar2 = Calendar.getInstance();
calendar2.setTimeInMillis(System.currentTimeMillis());
calendar2.add(Calendar.MINUTE, 3);
}
我去行动B ...做一些事情......回来行动A ...它再次调用警报的OnReceive,没有触发器过期......我做错了什么?