Переменные уровня приложения Android - PullRequest
9 голосов
/ 30 июня 2011

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

НО у меня есть группа разрешений на доступ пользователей, которые я получаю с помощью вызова веб-службы, и я не хочу делать этот вызов во всех действиях onCreate().

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

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

Мне известно о IntentExtras, но мы говорим о настройках «Объект», а не о примитивном типе.

правильный способ справиться с этой ситуацией?

Ответы [ 2 ]

28 голосов
/ 30 июня 2011

На самом деле вы можете создать класс «Приложение», который можно использовать для создания общих настроек приложения.

Просто создайте новый класс и расширьте Application, затем установите любые члены класса и соответствующие методы getter / setter, и вы сможете получать к ним доступ через приложение.

Затем вам необходимо обновить манифест следующим образом:

<application android:icon="@drawable/logo"
             android:label="@string/app_name"
             android:name=".application.CustomApplication">

Тогда в любом упражнении вы можете получить к нему доступ следующим образом:

CustomApplication app = ((CustomApplication)getApplication());
1 голос
/ 30 июня 2011

Я думаю, что использование общих настроек довольно безопасно. Только опытные пользователи с root-правами, пользовательскими ромами и знаниями по взлому смогут оценить это! (Я даже не уверен, что это было бы возможно).

Помимо SharedPreferences, вы также можете реализовать пользовательский объект Application и сохранить там свои разрешения.

В любом случае, как разработчик, я думаю, что гораздо более вероятно, что он будет взломан где-то в запросе, который я делаю, чтобы получить права пользователя (использовать https и т. Д.) И декомпилировать мое приложение.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...