0
위젯을 클릭하려고하면 위젯이 클릭 할 때 업데이트됩니다. 공동, 나는 매력처럼 작동 - 다음 코드를 만들었지 만 약 20 분 동안 만 작동을 멈췄다. (더 이상 클릭시 업데이트되지 않지만 XML의 지정된 기간 이후에 자체 위젯이 업데이트 됨) 다시 작업하기 시작 함 다른 위젯 인스턴스를 추가하면 모든 의도가 다시 등록됩니다.~ 20 분 후에 PendingIntent가 손실됩니다.
다른 누구에게도 문제가 발생 했습니까? 내 코드에 문제가있는 것을 볼 수 있습니까? 내 위젯 제공자에
는 :
내 서비스가 선언되는 방법 @Override
public void onUpdate(Context context, AppWidgetManager appWidgetManager,
int[] appWidgetIds) {
super.onUpdate(context, appWidgetManager, appWidgetIds);
final int N = appWidgetIds.length;
Log.d(tag, "onUpdate");
for (int i=0; i<N; i++) {
int appWidgetId = appWidgetIds[i];
RemoteViews views = new RemoteViews(context.getPackageName(), R.layout.widget_exchange_rate_small);
Intent intent = new Intent(context, ExchangeRateWidgetService.class);
intent.putExtra(AppWidgetManager.EXTRA_APPWIDGET_ID, appWidgetId);
PendingIntent pendingIntent = PendingIntent.getService(context, appWidgetId, intent, PendingIntent.FLAG_UPDATE_CURRENT);
// Register onClick action for pendingIntent
views.setOnClickPendingIntent(R.id.wdExchangeRate, pendingIntent);
appWidgetManager.updateAppWidget(appWidgetId, views);
try {
// Perform first update
pendingIntent.send();
} catch (CanceledException e) {
Log.e(tag, "First update has been canceled, this should not normally happend!");
e.printStackTrace();
}
}
:
public class ExchangeRateWidgetService extends IntentService {
protected void onHandleIntent(Intent intent) {
// Doing something ...
}
}
무엇을 pendingIntent.send() 호출에 사용합니까? – Egor
글쎄, 업데이트 자체를 수행하고 데이터를 검색하고 위젯을 업데이트하는 서비스를 호출합니다. – Ency