Intereting Posts
Можно ли получить байтовый буфер непосредственно из аудиообъекта в OpenSL ES (для Android)? В чем разница между методами invalidate () и postInvalidate () Android? Как реализовать устаревшие методы уведомления Android NDK Native метод не найдена ошибка Событие кнопки переключения не работает на разных устройствах Android – в чем смысл StableID? Анимированные кнопки масштабирования Раздувание фрагментов с пакетом совместимости Напишите общедоступный / закрытый ключ в SharedPreferences и используйте его Отчет об ошибке сбоя консоли ACRA vs для Android Сбой Android-эмулятора Android при запуске в Android Studio (Linux) Как настроить состояние щелчка для моей пользовательской кнопки? Как предотвратить элементы списка ListView в черном Ошибка создания проекта в Android Studio "Ошибка: ресурс не найден, который соответствует указанному имени (в ____ со значением '@ drawable / <name>') Зависимости AndroidTestCompile, не признанные в импорте

Как обновляется формат времени для Android?

Я использую пользовательский RemoteView для AndroidNotification, и я хотел бы имитировать поведение системы.

Как Android обновляет формат времени уведомления – они когда-либо меняются после их установки? Как я могу имитировать это поведение?

Solutions Collecting From Web of "Как обновляется формат времени для Android?"

Я не уверен, что вы все еще ищете ответы, учитывая, что вы сами предоставили их. Однако, если вы хотите достичь своей первоначальной цели, вы, вероятно, захотите

  • Перестройте RemoteView каждый раз, когда изменяется время (это просто проще)
  • Настройте BroadcastReceiver, чтобы поймать тики часов, чтобы вы знали, когда изменилось время.

Итак, некоторый код немного напоминает это:

class MyCleverThing extends Service (say) { // Your stuff here private static IntentFilter timeChangeIntentFilter; static { timeChangeIntentFilter = new IntentFilter(); timeChangeIntentFilter.addAction(Intent.ACTION_TIMEZONE_CHANGED); timeChangeIntentFilter.addAction(Intent.ACTION_TIME_CHANGED); } // Somewhere in onCreate or equivalent to set up the receiver registerReceiver(timeChangedReceiver, timeChangeIntentFilter); // The actual receiver private final BroadcastReceiver timeChangedReceiver = new BroadcastReceiver() { @Override public void onReceive(Context context, Intent intent) { final String action = intent.getAction(); if (action.equals(Intent.ACTION_TIME_CHANGED) || action.equals(Intent.ACTION_TIMEZONE_CHANGED)) { updateWidgets(); // Your code to rebuild the remoteViews or whatever } } }; 

Я мало знаю о формате времени уведомления, но если вы хотите подражать их поведению, следует взглянуть на класс DateUtils , особенно форматSameDayTime, который, как я думаю, делает то, что вы описали.

Невозможно обновить уведомление после добавления, если .notify вызывается снова с тем же идентификатором.

Если вы используете отметку времени, лучше использовать собственный Notification NotificationCompat.Builder без использования RemoteView.

Каждый раз, когда вы обновляете свое уведомление, делайте что-то простое (24 часа) …

 public void updateNotifTime(RemoteViews customNotifView){ Date currentTime = new Date(); int mins = currentTime.getMinutes(); String minString = ""; if(mins<10){ minString = "0"; } minString += mins; customNotifView.setTextViewText(R.id.time, currentTime.getHours()+":"+minString); }