Методы жизненного цикла деятельности: значение onPostResume

Цель union - разрешить сохранение объектов другого типа в узлах, испускаемых flex.

Чтобы лучше объяснить, вы можете иметь, например:

%union
{
    int intValue;
    float floatValue;
    char *stringValue;
}

в .y, если вы хотите обеспечить базовую поддержку типов int, float и string. Что вы можете сделать с этим?

Две вещи:

Во-первых, вы можете автоматически устанавливать правильные значения при создании токенов. Подумайте о файле .l предыдущего примера, вы можете:

[a-zA-Z][a-zA-Z0-9]* {
 yylval.stringValue = strdup(yytext);
 return IDENTIFIER;
}

[0-9]+ { 
 yylval.intValue = atoi(yytext);
 return INTEGER;
}

[0-9]*\.[0-9]+"f"? {
    yylval.floatValue = new atof(yytext);
 return FLOAT;
}

Кроме того, вы можете использовать значение непосредственно в вашей грамматике flex :

nexp: nexp '+' nexp { $<floatValue>$ = $<floatValue>1 + $<floatValue>3 }

Наконец, если вы планируете использовать дерево синтаксиса ООП, вы можете определить объединение как

%union
{
    class ASTNode *node;
}

, в котором ASTNode является классом предков любого типа синтаксического узла.

16
задан Ravindra babu 21 February 2017 в 16:28
поделиться

1 ответ

onPostResume в основном зарезервирован для системных действий, которые хотят завершить какую-то настройку после того, как возобновились какие-либо подклассы.

Две вещи, для которых это хорошо, (которые могут заставить вас чувствовать, что это важно) предназначены для выполнения действий после , ваши вложенные фрагменты также возобновляются и , когда приложения гарантированно будет видимым для пользователя (он может быть еще не виден во время onResume).

Это может немного сбивать с толку названия методов, когда вы смотрите на Источники, но если вы зарегистрируете поток, вы увидите, что происходит:

  1. Резюме деятельности
  2. Резюме фрагментов
  3. onPostResume вызывается в Activity

Я добавлю слово предостережения для любых будущих читателей - если вы используете onPostResume, чтобы дождаться вашего фрагмента, чтобы вызвать некоторые get метод (например), то у вас плохой, ненадежный дизайн. Вместо этого у вас должен быть шаблон обратного вызова из вашего фрагмента, и этот фрагмент должен «отправить» данные обратно в действие, когда оно будет готово

5
ответ дан Nick Cardoso 21 February 2017 в 16:28
поделиться
Другие вопросы по тегам:

Похожие вопросы: