[Android]HomeWidgetのクリックイベントが効かない!?
こんなウィジェットを作ってました。
・一定期間ごとに画像が切り替わる
・ウィジェットをタッチしたら、メインのアプリが起動する
画像の更新はサービス起動し、一定時間が経過したら、
ウィジェットに対してメッセージをブロードキャストします。
ウィジェットはメッセージを受信したら、画像を更新します。
ウィジェットを配置直後はタッチが効いていたのに、
しばらくするとタッチできない状態に。
なんで?
@Override
public void onUpdate(Context context, AppWidgetManager appWidgetManager, int[] appWidgetIds) {
super.onUpdate(context, appWidgetManager, appWidgetIds);
RemoteViews remoteViews = new RemoteViews(context.getPackageName(), R.layout.widget_image);
Intent intent = new Intent(context, SplashActivity.class);
PendingIntent pendingIntent = PendingIntent.getActivity(context, 0, intent, 0);
// イベント設定
remoteViews.setOnClickPendingIntent(R.id.widgetClock, pendingIntent);
ComponentName widget = new ComponentName(context, WidgetImage.class);
appWidgetManager.updateAppWidget(widget, views);
}
// 画像更新 updateImage()
ComponentName thisWidget = new ComponentName(context, WidgetImage.class);
AppWidgetManager manager = AppWidgetManager.getInstance(context);
remoteViews.setImageViewBitmap(R.id.widgetImage, bitmap);
manager.updateAppWidget(thisWidget, remoteViews);
原因は画像の更新だけ行っていて、
クリックイベントを毎回設定していなかったから。
Viewを毎回生成し直すイメージなのか。
Comments are currently closed.