public class WeatherWidgetProvider extends AppWidgetProvider {
...
@Override
public void onReceive(Context ctx, Intent intent) {
final String action = intent.getAction();
RemoteViews views = new RemoteViews(ctx.getPackageName(), R.layout.widget_layout);
views.setViewVisibility(R.id.progress_bar, View.VISIBLE);
if (action.equals(REFRESH_ACTION)) {
..시간걸리는 작업
views.setViewVisibility(R.id.progress_bar, View.GONE);//프로그래스바를 없애라
@Override
public void onUpdate(Context context, AppWidgetManager appWidgetManager, int[] appWidgetIds) {
for (int i = 0; i < appWidgetIds.length; ++i) {
//실제 뷰를그리기위한 설계도
layout = buildLayout(context, appWidgetIds[i], mIsLargeLayout);
//buildLayout에서는 버튼을 배치합니다.
appWidgetManager.updateAppWidget(appWidgetIds[i], layout);
}
질문내용은
onUpdate에서는 버튼을 배치하고 그리고 위젯을 업데이트하는 내용들이 있습니다.
onReceive에서는 버튼을 눌렀을때 기본적인 처리 블럭이 들어갑니다.
제가 원하는 동작은 버튼이 눌리면 프로그래스바가 보여지기 시작해서
동작이 끝나면 프로그래스바를 없애주는 그런 작업을 하고싶습니다..
그런데 위의 소스처럼 구현하니까 제가 원하는대로 동작을 안하고
계속 프로그래스바가 돌기만 하네요.. ㅠㅠ