안드로이드 개발 질문/답변
(글 수 45,052)
@Override
public void onUpdate(Context context, AppWidgetManager appWidgetManager,
int[] appWidgetIds) {
Log.d(TAG, "onUpdate");
final int N = appWidgetIds.length;
for (int i = 0; i < N; i++) {
int appWidgetId = appWidgetIds[i];
PendingIntent pi = PendingIntent.getBroadcast(context, 0, new Intent(WIDGET_action), 0);
RemoteViews views = new RemoteViews(context.getPackageName(), R.layout.widgetui);
views.setOnClickPendingIntent(R.id.but1, pi);
final AppWidgetManager gm = AppWidgetManager.getInstance(context);
gm.updateAppWidget(appWidgetId, views);
}
}
@Override
public void onReceive(Context context, Intent intent)
{
Log.d("Receiver", "1");
String action = intent.getAction();
if (action.equals(WIDGET_action))
{
Log.d("Receiver", "2");
AppWidgetManager appWidgetManager = AppWidgetManager.getInstance(context);
ComponentName thisWidget = new ComponentName(context, receiver.class);
int[] appWidgetIds = appWidgetManager.getAppWidgetIds(thisWidget);
final int N= appWidgetIds.length;
for (int i=0;i<N;i++)
{
int appWidgetId = appWidgetIds[i];
RemoteViews views = new RemoteViews(context.getPackageName(),R.layout.subwidget);
views.setTextViewText(R.id.xxx, "Testing");
appWidgetManager.updateAppWidget(appWidgetId, views);
}
Log.d(TAG, "ok");
}
위와 같이 했는데 action이 전혀 이루어 지지 않는것 같아요.
디버깅에서 Receiver 1은 프로그램 시작할때 한번 호출되고 그 이후 버튼을 눌러도 감감 무소식.
지금 현재 버튼을 눌렀을 때 정상적으로 intent 가 발생하고 있는지 모르겠네요 ㅠ