2016-10-27 1 views
0

Derzeit ich den app-Widget mit Sammlung studierte, und es gibt zwei Punkte, die ich bin verwirrt,Zwei Fragen zu App-Widget mit Sammlung

unten Codes siehe

onUpdate Codes

 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 Codes

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; 
    } 

erste Frage ist, was Zweck der Code unten, serviceIntent.setData (Uri.parse (serviceIntent.toUri (Intent .URI_INTENT_SCHEME))); Ich lese durch Google API Doc, kann aber keine Antwort finden.

Die zweite Frage bezieht sich auf toastIntent, warum Intent-Aktion wird bei OnUpdate-Methode statt GetViewAt-Methode festgelegt? Und warum wird ausstehende Absicht mit einer benutzerdefinierten Aktion namens TOAST_ACTION ausgelöst, wenn die Schaltfläche gedrückt wird?

Vielen Dank für die Beantwortung meiner Fragen im Voraus.

Antwort

0

Intent.toUri() kann diese Intent in eine String konvertieren, die eine URI-Darstellung davon enthält.

setDate oft in einem nicht deklarierten Intent, die eine Komponente mit Bezug auf das Datum starten kann.

+0

Können Sie mir den Zweck erklären, setData hier zu setzen? – Leon

+0

Nein, ich werde es dir nicht sagen. – user7078144