我有这个局部变量:
private void startNetWatcher(){ //runs every 30 seconds
Log.i(TAG, "starting Net Watcher");
Intent alarm = new Intent(getApplicationContext(), NetWatcher.class);
boolean alarmRunning = (PendingIntent.getBroadcast(getApplicationContext(), alarmId, alarm, PendingIntent.FLAG_NO_CREATE) != null);
if(!alarmRunning) {
Log.i(TAG, "alarm not running");
if (pendingIntent == null)
pendingIntent = PendingIntent.getBroadcast(getApplicationContext(), alarmId, alarm, PendingIntent.FLAG_UPDATE_CURRENT);
alarmManager = (AlarmManager) getSystemService(Context.ALARM_SERVICE);
alarmManager.setRepeating(AlarmManager.RTC_WAKEUP, SystemClock.elapsedRealtime(), 15000, pendingIntent);
}
}
这是我开始发出警报
private void stopNetWatcher(){
Log.i(TAG, "stopping net watcher because app is on front: " + alarmId);
alarmManager = (AlarmManager) getSystemService(Context.ALARM_SERVICE);
Intent alarm = new Intent(getApplicationContext(), NetWatcher.class);
if (pendingIntent==null)
pendingIntent = PendingIntent.getBroadcast(getApplicationContext(), alarmId, alarm, PendingIntent.FLAG_UPDATE_CURRENT);
try {
alarmManager.cancel(pendingIntent);
pendingIntent.cancel();
Log.i(TAG, "intent stopped");
}catch (Exception e){
Log.e(TAG, e.toString());
}
}
警报工作正常,这里是我停止"的代码。警报(或至少尝试)。但是它不起作用,因为它仍然运行我停止警报时应该停止的服务。
String