Является ли onCreate() Лучшее место для установки текста?

#java #android #android-activity #textview #oncreate

#java #Android #android-активность #textview #oncreate

Вопрос:

Я передаю данные из Activity A в MessageDetailActivity. Является ли onCreate () правильным местом для установки текста?

 public class MessageDetailActivity extends Activity {

        private TextView bodyTextView;
         /** Called when the activity is first created. */
        @Override
        public void onCreate(Bundle savedInstanceState) {
            super.onCreate(savedInstanceState);
            setupUI();
        }

        public void setupUI(){
            Bundle bundle = getIntent().getExtras();

            this.bodyTextView = (TextView) findViewById(R.id.bodyTextView);
            Log.d("VALUE IS", bundle.getString("message"));
            Toast.makeText(getApplicationContext(), bundle.getString("message"),Toast.LENGTH_SHORT).show();
            bodyTextView.setText(bundle.getString("message"));
        }
    }
  

Ответ №1:

Если MessageDetailActivity это действие singletop, oncreate будет вызван только один раз. таким образом, onResume было бы лучшим местом для установки текста.

Ответ №2:

Действие перезапускается всякий раз, когда связанное представление больше не отображается. onCreate вызывается только при первом создании действия, а не при его перезапуске. Из-за этого лучшим местом для установки текста было бы, по крайней мере, в методе OnStart(). Взгляните на жизненный цикл activity здесь.

Ответ №3:

Короче говоря, да.

Однако, если вы хотите предоставить кому-либо (т. Е. вспомогательному действию) возможность изменять текст, тогда вы можете захотеть установить текст в OnStart ();

С другой стороны, маловероятно, что вы действительно хотите, чтобы ваш метод setupUi () был общедоступным.