Вам не нужно Activity
для хранения настроек, просто Context
.В вашем классе, который расширяет AppWidgetProvider
, вы должны получить контекст во всех соответствующих методах, таких как onUpdate
и onDeleted
.
Затем вы можете использовать PreferenceManager
, чтобы получить объект предпочтения и сохранить то, чтовам нужно в нем, например, это:
@Override
public void onUpdate(Context context, AppWidgetManager appWidgetManager,
int[] appWidgetIds)
{
SharedPreferences prefs = PreferenceManager.getDefaultSharedPreferences(context);
String value = prefs.getString("key-string", null);
if(value != null)
{
// do stuff
}
}
В качестве примечания вы упомянули, что рассматривали возможность использования файлов, но не хотели по соображениям производительности.SharedPreferences
объекты на самом деле заканчиваются использованием простых файлов, они просто управляются для вас Android.Если вы собираетесь получать к нему доступ часто, вам все равно нужно быть осторожным с производительностью.То же самое относится и к базам данных SQLite, так как это всего лишь файлы.