Android Custom loader问题

时间:2016-04-24 10:58:47

标签: android ui-thread

我在我的活动中启动了一个IntentService,我想在处理这个IntentService期间显示一个“自定义加载器”。

这个“自定义加载器”是一个imageview,我想显示和隐藏每100个MS。

我写了这个,但它不起作用,UI线程被阻止:

        new Thread(new Runnable() {
        public void run() {
            runOnUiThread(new Runnable() {
                @Override
                public void run() {
                    while (!taskDone) {
                        LogUtils.log("run " + taskDone);
                        try {
                            img.setVisibility(View.VISIBLE);
                            Thread.sleep(100);
                            img.setVisibility(View.GONE);
                            Thread.sleep(100);
                        } catch (Exception e) {
                        }
                    }
                }
            });
        }
    }).start();

我在“onResume”方法中调用此代码。 当IntentService完成时,变量“taskDone”变为“true”。 (这很有效。)

使用此代码我有两个问题:

  • UI线程似乎“被阻止”
  • 看起来后台线程没有成功看到“taskDone”在几秒钟后有不同的值。

0 个答案:

没有答案