Показать значение в прогрессбар от нативного метода - PullRequest
1 голос
/ 16 июня 2011

У меня есть собственный код и я хочу обновить индикатор выполнения из собственного кода.Возвращаемого значения нет, потому что это длительная задача.
Я нашел небольшой пример http://developer.android.com/reference/android/widget/ProgressBar.html, но когда я перемещаю часть обновления дополнительным методом, я получаю исключение NullPointerException.
Кажется,что эта часть должна быть в потоке индикатора выполнения.

Я попробовал другой способ, используя AsyncTask как вложенный класс, но у меня нет доступа к методу publishProgress из-за пределов самого класса..

Есть ли возможность заставить его работать?

1 Ответ

1 голос
/ 16 июня 2011

Если возможно разбить вашу длинную задачу на несколько инкрементных вызовов, я бы рекомендовал это сделать.Затем вы можете сделать эти вызовы из цикла внутри AsyncTask.doInBackground (), как в примерах SDK.

Если это невозможно, вам понадобится переменная прогресса в вашем собственном коде, к которой можно безопасно обращатьсяиз нескольких потоков: запишите в него из своего рабочего кода и прочитайте его из новой функции JNI "getProgress ()", с соответствующей синхронизацией , выполненной в собственном коде.После этого вы сможете вызывать функцию getProgress () из AsyncTask.doInBackground () или любой другой схемы пользовательского интерфейса, которую вы выберете.

...