Добавить виджет на домашний экран из активности, запущенной через намерение - PullRequest
0 голосов
/ 24 мая 2011

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

Когда пользователь впервые пытается добавить мой виджет на домашний экран, он запускает поток, который загружает файл со списком датчиков и затем завершает работу. После завершения загрузки задача загрузки вызывает уведомление. Когда пользователь нажимает на уведомление, он должен начать действие dataWidgetConfig. Это работает, до некоторой степени, используя этот код

mNotificationManager = (NotificationManager)getSystemService(NOTIFICATION_SERVICE);
final Notification notifyDetails = new Notification(R.drawable.icon,"Sensor list downloaded.",System.currentTimeMillis());

CharSequence contentTitle = "Notification Details...";
CharSequence contentText = "Sensor list has downloaded, tap to add widget.";

Intent notifyIntent = new Intent(self, dataWidgetConfig.class);
notifyIntent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
notifyIntent.putExtra(AppWidgetManager.EXTRA_APPWIDGET_ID, appWidgetId);

PendingIntent pendingIntent = PendingIntent.getActivity(self, appWidgetId, notifyIntent, 0);

notifyDetails.setLatestEventInfo(self, contentTitle, contentText, pendingIntent);
mNotificationManager.notify(SIMPLE_NOTFICATION_ID, notifyDetails);

Моя проблема в том, что у меня нет appWidgetId. Когда я добавляю виджет долгим нажатием на главном экране, мне присваивается appWidgetId, как мне запросить его на главном экране? Я предполагаю, что я не могу просто сделать один из них, так как он может уже использоваться или быть выделен позже.

В данный момент моя активность запускается нормально, но завершается, потому что я намеренно установил свой appWidgetId как:

AppWidgetManager.INVALID_APPWIDGET_ID;

Кто-нибудь может дать мне какие-нибудь идеи по этому поводу?

...