1

这似乎应该很简单,但我陷入了混乱。

IntentService通过一个事件从我的主要活动开始,并使用在事件的同一主要活动中引用静态内部类onClick的服务来监听来自服务的响应,即PendingIntentBroadcastReceiveronClick

public void onClick(View arg0) {

    Intent intent = new Intent(this, MyService.class);        

    PendingIntent pendingIntent = PendingIntent.getBroadcast(this,0,MyReceiver,0);

    startService(intent);

}

public static class MyReceiver extends BroadcastReceiver {

    public void onReceive(Context context, Intent intent) {
         // Do stuff here ....
    }

现在,我要做的就是ProgressBar在活动的 UI 上显示一个(漩涡状的不确定的),同时它IntentService正在做它的事情。我ProgressBar在xml中定义为

<ProgressBar
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        style="@android:style/Widget.Holo.ProgressBar.Large"
        android:layout_centerVertical="true"
        android:layout_centerHorizontal="true"
        android:id="@+id/progress"
        android:visibility="gone"/>

我可以从onClick事件开始

 ProgressBar pb = (ProgressBar) findViewById(R.id.progress);
 pb.setVisibity(View.VISIBLE);

但我不知道在哪里以及如何隐藏它???我不能从myReceiver它的静态类中做到这一点,而且我无权访问 UI。看起来很简单,但我想不出最好的方法。有什么建议么?

谢谢!

4

1 回答 1

0

我可以想出两个解决方案:

1.将进度条分配给静态引用,并在 onReceive 中将其设置为不可见

2.使您的接收器非静态

于 2013-08-20T14:09:35.900 回答