Android 如何知道我的闹钟管理器计时器是否开启?

Android 如何知道我的闹钟管理器计时器是否开启?,android,Android,我正在使用以下代码(来自我的活动)在应用程序中启动一个周期计时器: Intent intent = new Intent(this, MyBroadcastReceiver.class); PendingIntent pendingIntent = PendingIntent.getBroadcast(this.getApplicationContext(), 234324243, intent, 0); AlarmManager alarmManager = (AlarmManager) ge

我正在使用以下代码(来自我的活动)在应用程序中启动一个周期计时器:

Intent intent = new Intent(this, MyBroadcastReceiver.class);
PendingIntent pendingIntent = PendingIntent.getBroadcast(this.getApplicationContext(), 234324243, intent, 0);
AlarmManager alarmManager = (AlarmManager) getSystemService(ALARM_SERVICE);
alarmManager.setRepeating(AlarmManager.RTC_WAKEUP, System.currentTimeMillis(),(i * 1000), pendingIntent);
Toast.makeText(this, "Alarm set in " + i + " seconds",
Toast.LENGTH_SHORT).show();

我想知道如何(从不同的活动)知道计时器正在运行?

我可以想到的一种可能性是检查是否定义了挂起的意图

你可以打电话

PendingIntent pendingIntent = PendingIntent.getBroadcast(this.getApplicationContext(), 234324243, intent, PendingIntent.FLAG_NO_CREATE);
这将为您提供挂起的意图,如果未指定意图,则为null。这不能保证报警已设置,但这是一种简单的方法,可以检查设置的报警代码之前是否已调用

另一种可能是将所有设置的报警保存在一个文件中。通过这种方式,您可以在共享的prefs文件中查找应用程序设置的所有报警

据我所知,无法从停止功能中的AlarmManager获取应用程序的设置报警列表

Intent intent = new Intent(this, LocaitonSampleBroadcaseReceiver.class);
PendingIntent pendingIntent = PendingIntent.getBroadcast( this.getApplicationContext(), 234324243, intent, 0); 
AlarmManager alarmManager = (AlarmManager) getSystemService(ALARM_SERVICE); alarmManager.cancel(pendingIntent);
只需添加以下内容:

pendingIntent.cancel();
因此,您可以使用Janusz编写的字符串注释

PendingIntent pendingIntent = PendingIntent.getBroadcast(this.getApplicationContext(), 234324243, intent, PendingIntent.FLAG_NO_CREATE);

嗨,它对我不起作用,我总是从启动它的时候就得到值(不是null)。b、 t.w为了停止计时器,我使用://Prepare the intent=new intent(这是LocationSampleBroadcaseReceiver.class);PendingEvent PendingEvent=PendingEvent.getBroadcast(this.getApplicationContext(),2343243,intent,0);//停止计时器AlarmManager AlarmManager=(AlarmManager)getSystemService(ALARM\u服务);alarmManager.cancel(挂起事件);这是正确的,PendingEvent将被存储,直到您对挂起的意图调用cancel。这是该方法的问题,您只能检查意图是否存在,而不是是否已在alarmmanager中注册