2012年3月9日金曜日

[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を毎回生成し直すイメージなのか。

0 件のコメント:

コメントを投稿