#android #android-intent #android-alarms
#Android #android-intent #android-сигналы тревоги
Вопрос:
Я использую AlarmManager
и пытаюсь ввести некоторые значения в putExtra
my BroadcastReceiver
. Значения, которые я отправляю, отправляются в BroadcastReceiver
, он отлично работает для передачи значений.
Но я отправляю свою переменную «counter» и всегда получаю старые значения, которые существовали при первом запуске my setRepeating()
. И я знаю, что значения счетчика намного выше, чем я там вижу. Поэтому, когда значения меняются, ничего не происходит. Как я могу получать событие каждые полчаса с правильными значениями ?!
Я искал уже 3 часа, но не могу найти решение для взаимодействия моего AlarmManager
и некоторых значений из датчика…
public void startAlarm(View view) {
try {
AlarmManager alarms = (AlarmManager) this
.getSystemService(Context.ALARM_SERVICE);
Intent intent = new Intent(getApplicationContext(),
MyAlarmReceiver.class);
intent.putExtra("startStepCounter", startStepCounter);
intent.putExtra("lastStepCounter", lastStepCounter);
final PendingIntent pIntent = PendingIntent.getBroadcast(this,
1234567, intent, PendingIntent.FLAG_CANCEL_CURRENT);
alarms.setRepeating(AlarmManager.RTC_WAKEUP,
System.currentTimeMillis(), timeToAlarmMilli, pIntent);
} catch (Exception e) {
}
}
public class MyAlarmReceiver extends BroadcastReceiver {
@Override
public void onReceive(Context context, Intent intent) {
Log.i("Alarm Receiver", "Entered");
//
Bundle bundle = intent.getExtras();
int local_start = bundle.getInt("startStepCounter");
int local_last = bundle.getInt("lastStepCounter");
Toast.makeText(context,
"ALARM " local_start " " local_last,
Toast.LENGTH_SHORT).show();
}
}
Комментарии:
1. Пожалуйста, предоставьте код: D
2. теперь код находится в тексте
3. Где вы обновляете свой счетчик?
4. где ваш счетчик? и какой-либо оператор увеличения?
Ответ №1:
посмотрите на эту часть вашего кода
final PendingIntent pIntent = PendingIntent.getBroadcast(this,
1234567, intent, PendingIntent.FLAG_CANCEL_CURRENT);
вам необходимо указывать уникальный идентификатор для второй части каждый раз, когда вы используете ожидающее намерение, поэтому вместо 1234567 используйте уникальный идентификатор.