현재 내가 컬렉션 응용 프로그램 위젯을 공부하고, 나는 혼란 스러워요 두 지점이있다, 코드는 아래를 참조두 질문
의 onUpdate 코드
Intent serviceIntent=new Intent(context,StackService.class);
serviceIntent.setData(Uri.parse(serviceIntent.toUri(Intent.URI_INTENT_SCHEME)));
RemoteViews remoteViews=new RemoteViews(context.getPackageName(),R.layout.stack_widget);
remoteViews.setRemoteAdapter(R.id.stack_widget,serviceIntent);
remoteViews.setEmptyView(R.id.stack_widget,R.id.stack_empty);
Intent toastIntent = new Intent(context, StackWidget.class);
toastIntent.setAction(StackWidget.TOAST_ACTION);
toastIntent.putExtra(AppWidgetManager.EXTRA_APPWIDGET_ID, appWidgetIds[i]);
PendingIntent toastPendingIntent = PendingIntent.getBroadcast(context, 0, toastIntent, PendingIntent.FLAG_UPDATE_CURRENT);
remoteViews.setPendingIntentTemplate(R.id.stack_widget, toastPendingIntent);
appWidgetManager.updateAppWidget(appWidgetIds[i],remoteViews);
getViewAt 코드
public RemoteViews getViewAt(int position) {
RemoteViews remoteViews=new RemoteViews(getPackageName(),R.layout.stack_item);
remoteViews.setImageViewResource(R.id.item_image,R.raw.logo);
remoteViews.setTextViewText(R.id.item_text,list.get(position));
Bundle extras = new Bundle();
extras.putInt(StackWidget.EXTRA_ITEM, position);
Intent fillIntent=new Intent();
fillIntent.putExtras(extras);
remoteViews.setOnClickFillInIntent(R.id.item_button,fillIntent);
return remoteViews;
}
첫 번째 질문은 아래 코드의 목적은 입니다. serviceIntent.setData (Uri.parse (serviceIntent.toUri (Intent .URI_INTENT_SCHEME)))); Google api doc을 통해 읽었지만 대답을 찾을 수 없습니다.
두 번째 질문은 toastIntent에 대한 것인데 왜 의도 동작이 getViewAt 메소드가 아니라 onUpdate 메소드로 설정되고 있습니까? 그리고 버튼을 눌렀을 때 TOAST_ACTION이라는 맞춤 조치가있는 보류중인 의도가 실행되는 이유는 무엇입니까?
미리 질문 해 주셔서 감사합니다.
여기에 setData를 넣을 목적을 설명해 주시겠습니까? – Leon
아니요, 저는 당신에게 말하지 않을 것입니다. – user7078144