GettingSignals

[Android]HomeWidgetのクリックイベントが効かない!?

2012年3月9日
Posted by hina

こんなウィジェットを作ってました。
・一定期間ごとに画像が切り替わる
・ウィジェットをタッチしたら、メインのアプリが起動する

画像の更新はサービス起動し、一定時間が経過したら、
ウィジェットに対してメッセージをブロードキャストします。
ウィジェットはメッセージを受信したら、画像を更新します。

ウィジェットを配置直後はタッチが効いていたのに、
しばらくするとタッチできない状態に。

なんで?

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

Share

Comments are currently closed.

Follow

カレンダー

2024年4月
1234567
891011121314
15161718192021
22232425262728
2930