在本机方法的进度栏中显示值

| 我有一些本机代码,想从本机代码更新进度条。没有返回值,因为它是一个持续时间很长的任务。 我找到了一个小例子http://developer.android.com/reference/android/widget/ProgressBar.html,但是当我使用其他方法移动更新部分时,我得到了NullPointerException。 看来这部分必须在进度条的线程中。 我通过使用
AsyncTask
作为嵌套类尝试了另一种方法,但是我没有从类本身之外的任何地方访问
publishProgress
方法。 是否有可能使其正常工作?     
已邀请:
        如果可以将您的长期任务分解为多个增量调用,那么我建议您这样做。然后,可以像在SDK示例中一样,从AsyncTask.doInBackground()内部的循环中进行这些调用。 如果无法做到这一点,则需要在本机代码中需要一个可以从多个线程安全访问的progress变量:从您的工作程序代码中写入它,并从一个新的\“ getProgress()\” JNI中读取它功能,并以本机代码完成适当的同步。然后,您将能够从AsyncTask.doInBackground()或您选择使用的任何UI方案中调用getProgress()函数。     

要回复问题请先登录注册