AsyncTask: как получить доступ к параметрам onPostExecute?

1

Итак, я передаю массив String в свой метод onPostExecute, но мне было интересно, как я могу получить доступ к выходному сигналу этого потока в следующем действии... т.е. Page.class

Сейчас я использую putExtra, есть ли что-нибудь еще, что я могу сделать? После putExtra здесь, как я могу получить доступ к этому в Page.class. Обратите внимание, что Page.class НЕ является классом, который запускает этот поток.

public void onPostExecute(String[] x){
    d.dismiss();
    Intent i= new Intent(ctx,Page.class);
    i.putExtra("values", x);
    ctx.startActivity(i);



Intent b = getIntent();
        String[] values = b.getStringArrayExtra("values");
        Log.d("hello", values[0]);
  • 0
    Все решения работали. Я забыл удалить строку кода, потому что я реализовал AsyncTask из одного потока и не удалил все нужные мне строки.
Теги:

3 ответа

1
Лучший ответ

Ваш Page.class - это активность, запущенная onPostExecute(), правильно?

Тогда все, что вы добавили в Extra Bundle, было бы доступно. @Gix уже опубликовал способ доступа к пакету, поэтому я не повторяюсь здесь. Но, пожалуйста, проверьте класс bundle, чтобы увидеть, что вы можете поместить внутри (практически все примитивы и массивы в порядке)

  • 0
    верный. но я получаю исключение нулевого указателя
  • 2
    Просто прочитайте ваши изменения. Пожалуйста, убедитесь, что ваш x вы указали в намерении, не пустой. Или проще, вы сначала выходите из системы: String [] values = b.getStringArrayExtra ("values"); Log.d ("привет", values.length + "");
Показать ещё 3 комментария
1

Если вы запускаете страницу активности прямо из onPostExecute, вы можете получить доступ к дополнительным функциям на странице Activity без каких-либо проблем. Способ сделать это - использовать следующий код:

Bundle extras = getIntent().getExtras();
String values = extras.getString("values");

и там у вас есть

  • 0
    это не работает, я получаю исключение нулевого указателя, я добавил то, что я пытался
1

В onCreate(...) вашей деятельности "Страница" просто используйте Intent i = getIntent(), затем используйте String[] values = i.getStringArrayExtra("values")

  • 0
    когда я делаю это, я получаю исключение нулевого указателя при попытке почитать значения [0], я добавил то, что я пытался

Ещё вопросы

Сообщество Overcoder
Наверх
Меню