如何在我的活动执行其他功能时显示加载动画?

时间:2016-05-07 17:25:06

标签: android progress-bar intentservice android-intentservice

我有一个活动,它调用具有Thread.Sleep调用的函数和处理程序,它们对从蓝牙连接接收的数据进行进一步处理。

我想在调用处理程序时显示加载进度条动画。从蓝牙设备完全处理数据可能需要几分钟到几个小时。

因此,我在XML文件中声明了一个进度条,并在数据处理完成后将进度视图设置为“View.GONE”。

问题是在调用我的处理程序之前会显示加载动画。调用处理程序后,加载动画将挂起,并在完成所有处理程序调用后释放。下面是我正在使用的XML和类文件

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:gravity="bottom"
    android:background="@drawable/bg"
    android:orientation="vertical"
    android:paddingBottom="40dp"
    android:paddingLeft="20dp"
    android:paddingRight="20dp">

    <RelativeLayout
        android:id="@+id/loadingPanel"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:gravity="center" >

        <ProgressBar
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:indeterminate="true" />
    </RelativeLayout>

</LinearLayout>

以下是java文件源代码的链接。

https://drive.google.com/file/d/0B7CcUOV3YOH7NUtNSXB1Nk5KbE0/view?usp=sharing

“MainDefine.penController.OpenFileTobyte(mFolderName,mFileName);” in function“downLoadDIPage”触发类中定义的处理程序。

我认为问题是,处理程序函数正在UI线程上执行,因此阻止了加载进度条。我已经尝试在新线程上启动从处理程序调用的函数,但这并没有解决我的问题。

我遇到了这个问题,并且是阻止我的产品发布的唯一问题。任何人都可以帮我解决这个问题。

提前致谢。

0 个答案:

没有答案