Android Widget onClick - PullRequest
       11

Android Widget onClick

3 голосов
/ 15 ноября 2011

Я хочу иметь возможность щелкнуть виджет и запустить диалоговое окно. Я прочитал официальную документацию как некоторые из неофициальных. Сначала я хотел начать новую деятельность, но даже это не удалось. В Logcat я получаю следующее, но ничего не вижу.

11-14 21:28:47.929: INFO/ActivityManager(116): Starting: Intent { flg=0x10000000 cmp=com.android.app/.Execute bnds=[179,89][300,160] } from pid -1

Полагаю, вышеизложенное означает, что намерение было достигнуто ... Но действие фактически не было начато. Должна ли активность быть нормальной?

Используемый код:

public class ExampleAppWidgetProvider extends AppWidgetProvider {

public void onUpdate(Context context, AppWidgetManager appWidgetManager, int[] appWidgetIds) {
    final int N = appWidgetIds.length;

    // Perform this loop procedure for each App Widget that belongs to this provider
    for (int i=0; i<N; i++) {
        int appWidgetId = appWidgetIds[i];

        // Create an Intent to launch ExampleActivity
        Intent intent = new Intent(context, ExampleActivity.class);
        PendingIntent pendingIntent = PendingIntent.getActivity(context, 0, intent, 0);

        // Get the layout for the App Widget and attach an on-click listener
        // to the button
        RemoteViews views = new RemoteViews(context.getPackageName(), R.layout.appwidget_provider_layout);
        views.setOnClickPendingIntent(R.id.button, pendingIntent);

        // Tell the AppWidgetManager to perform an update on the current app widget
        appWidgetManager.updateAppWidget(appWidgetId, views);
    }
}
}

Есть мысли?

1 Ответ

2 голосов
/ 15 ноября 2011

Наиболее вероятной причиной проблемы может быть то, что вы не объявили ExampleActivity в своем манифесте.

Вы также можете попробовать использовать уникальный номер для аргумента 2 вашего PendingIntent создания, а также поставить разумный флаг в аргументе 4:

    PendingIntent pendingIntent = PendingIntent.getActivity(context, appWidgetId, intent, PendingIntent.FLAG_UPDATE_CURRENT );
...