Единственное отличие в вашем коде в том, что вы заканчиваете действие перед обновлением виджета.
Из документации метод onUpdate не будет вызываться в первый раз.
Я думаю, что вы должны добавить следующее:
super.onCreate(icicle);
setResult(RESULT_CANCELED);
Удалить эту строку:
setResult(RESULT_CANCELED, resultValue);
После этого измените вызов на обновление до setResult и finish ():
//make the update before finish()
appWidgetManager.updateAppWidget(appWidgetId, views);
Intent resultValue = new Intent();
resultValue.putExtra(AppWidgetManager.EXTRA_APPWIDGET_ID, appWidgetId);
setResult(RESULT_OK, resultValue);
finish();
Я не воспроизводил вашу проблему, пожалуйста, дайте мне знать, если эта работа для вас.
После того, как вы поделитесь исходным кодом, основная проблема заключается в том, что при первом создании вы добавляете намерение клика в текст, а при обновлении вы добавляете ожидающее намерение в свой imageView ...
изменение этой строки решит вашу проблему. Тест на пиар ...
views.setOnClickPendingIntent(R.id.example_widget_imageview, clickPendingIntent);