在意图服务运行时显示进度条

时间:2013-08-20 13:51:53

标签: android service android-progressbar

这似乎应该很简单,但我陷入困境。

我通过IntentService事件从我的主要活动中启动onClick,并使用引用静态内部类PendingIntent的{​​{1}}来侦听服务的响应在BroadcastReceiver事件的同一主要活动中,即

onClick

现在,我想要做的就是在活动的用户界面上显示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正在做其中的事情。我将xml中的IntentService定义为

ProgressBar

我可以通过

<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); 做它作为静态类,我无法访问UI。这看起来很简单,但我无法弄清楚最好的方法。有什么建议吗?

谢谢!

1 个答案:

答案 0 :(得分:1)

我可以找到两个解决方案:

1.将进度条分配给静态引用,并在onReceive

中将其设置为不可见

2.使您的接收器非静态