Попытка отправить данные в виджет приложения

StackOverflow https://stackoverflow.com/questions/1938238

  •  20-09-2019
  •  | 
  •  

Вопрос

Я работаю над виджетом, который изменит данные, которые он отображает, когда пользователь нажимает на него. Обычно с этим легко справиться, но мой поставщик виджетов приложения обрабатывает несколько экземпляров виджетов, которые имеют разные наборы данных. С учетом вышесказанного, когда пользователь нажимает на виджет, запускается пенсионное вещество, которое вызывает метод mediceata (). Внутри запускаемого намерения я хранят идентификатор виджета, поэтому измененный () знает, какой набор данных использовать. Сначала я хранил идентификаторы виджетов в дополнениях к намерению, но я обнаружил, что есть ошибка в том, как виджеты Android обрабатывают виджеты виджета, так что теперь я пытаюсь сохранить виджет, передав URL -адрес с помощью метода setData () (форматированный Как контент: widgetid IE Содержание: 24 и т. Д.).

Вот как я настраиваю данные для PendingIntent:

Intent changeData = new Intent("com.tonycosentini.mintdroid.CHANGE_DATA");
changeData.setData(Uri.parse("content:" + currentWidgetId));
PendingIntent changeDataPendingIntent = PendingIntent.getBroadcast(this, 0, changeData, 0);

Однако, как только я пытаюсь проверить это, метод Onrecieve (), который обычно вызывается, когда виджет больше не вызывается. Есть ли что -то, что мне нужно настроить в моем файле Manifest Android для этой работы должным образом, или есть что -то, что я делаю совершенно не так?

Спасибо, что нашли время прочитать это, Тони

Это было полезно?

Решение

Вам нужно соответствовать

<data android:scheme="content" />

или же

IntentFilter filter = new IntentFilter("com.tonycosentini.mintdroid.CHANGE_DATA");
filter.addDataScheme("content");

В вашем фильтре намерения.

Зависит от того, объявите фильтр в XML или Java.

http://developer.android.com/guide/topics/intents/intents-filters.html

Объект намерения, который содержит URI, но тип данных (и тип не может быть выведен из URI) проходит тест, только если его URI соответствует URI в фильтре, а фильтр также не указывает тип. Это будет иметь место только для URI, таких как Mailto: и Tel: которые не относятся к фактическим данным.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top