Я сделал виджет домашнего экрана для своего приложения. Мне нужно, чтобы он взаимодействовал с методами в моем MainActivity.
Как бы я go об этом?
В dev do c упоминаются "виджеты управления", но не объясняется, как реализовать их. (https://developer.android.com/guide/topics/appwidgets/overview#control -widgets ).
Нужен ли мне сервис или интерфейс для связи между виджетом и MainActivity?
Что я пробовал :
Я попытался передать значение моего счетчика кликов из моего метода WidgetProvider OnReceive в мою функцию MainActivity с помощью SharedPreferences. Это работает в некоторой степени, но это должно быть взаимодействие в реальном времени в обоих направлениях, поэтому оно не подходит. Вот почему я думал с точки зрения обслуживания. Но будет ли лучший вариант?
А если я воспользуюсь услугой, будет ли это конкретная c? Как «RemoteViewsService» или «IntentService»?
Вот пример моего кода в моем WidgetProvider:
@Override
public void onReceive(Context context, Intent intent) {
super.onReceive(context, intent);
if (ACTION_SIMPLE_APPWIDGET.equals(intent.getAction())) {
if (mCounter < optionsStrings.length - 1) {
mCounter++;
} else {
mCounter = 0;
}
RemoteViews views = new RemoteViews(context.getPackageName(), R.layout.app_widget);
stringText = optionsStrings[mCounter];
views.setTextViewText(R.id.appwidget_text, stringText);
В зависимости от значения счетчика, мне нужно вызвать различные методы в MainActivity.