2016-11-28 1 views
0

Я хочу ограничить количество экземпляров виджета моего приложения Widget, которое пользователь может запустить. На самом деле, для моего случая имеет смысл иметь его.Tizen Native: Как я могу получить только один экземпляр виджета и не позволять пользователю создавать больше?

В устройстве Samsung Gear 2 у виджета музыкального плеера есть поведение, которое я хочу. Фактически, когда вы запускаете этот виджет, он снова не отображается в списке Widget. Это было бы прекрасно!

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

Любые предложения?

ответ

0

Я нашел здесь решение: https://developer.tizen.org/zh-hans/forums/native-application-development/limit-number-widget?langswitch=zh-hans

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

int instance_count =0; 

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

static int 
_on_create_cb(widget_context_h context, bundle *content, int w, int h, void *user_data) { 

    if(instance_count >0) return WIDGET_ERROR_ALREADY_EXIST; 
    instance_count++; 

    return WIDGET_ERROR_NONE; 
} 

В случае разрушения у обратного вызова мы уменьшаем счетчик

static int 
_on_destroy_cb(widget_context_h context, widget_app_destroy_type_e reason, bundle *content, void *user_data) { 
    instance_count--; 
    return WIDGET_ERROR_NONE; 
} 

Это не является идеальным решением, поскольку он все еще позволяет пользователю выбрать виджет из списка, но это работает. Я также тестировал сбой приложения специально, и это решение работает. Когда приложение вылетает, _on_destroy_cb не вызывается, но instance_count сбрасывается на 0 в любом случае.

+0

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

+1

Да, я согласен. Было бы намного лучше, если бы этот вариант существовал. Не удалось найти. – peterg

Смежные вопросы