Использование SharedPreferences в runnable

Мне нужно сохранить некоторые данные в SharedPreferences в классе, производном от Runnable.

Похоже, без context до него добраться невозможно. Например, для следующего потребуется объект контекста, который недоступен для экземпляра Runnable.

PreferenceManager.getDefaultSharedPreferences(Context context)

Есть ли способ заставить его работать в Runnable или мне просто использовать БД для всех настроек.


person Vahid    schedule 31.12.2015    source источник
comment
Вы пробовали одно из этих предложений?   -  person Andrea Dusza    schedule 31.12.2015
comment
Ага. Они предлагают объявлять runnable внутри активности и использовать локальную переменную для контекста. Я предпочитаю не делать этого, так как мне нужно, чтобы мой runnable можно было повторно использовать в других действиях. Могу ли я вместо этого запросить контекст в конструкторе runnable?   -  person Vahid    schedule 31.12.2015


Ответы (1)


Как насчет сохранения контекста в поле в вашем runnable и передачи его в качестве параметра конструктора? Таким образом, его можно было бы использовать повторно.

public class MyRunnable implemets Runnable{
    private Context context;

    public MyRunnable(Context context){
        this.context = context;
    }

    public void run(){
        /...
    }
}
person Andrea Dusza    schedule 31.12.2015