Android 我们可以也应该在非UI线程上提交SharedReference,如果是,如何提交?
我正在制作一个应用程序,它必须在运行时保存和提取数据,而SharedReferences使我的动画滞后。那么,有没有一种方法可以在非UI线程上保存和检索数据呢 或者我的方法有什么问题吗Android 我们可以也应该在非UI线程上提交SharedReference,如果是,如何提交?,android,multithreading,sharedpreferences,Android,Multithreading,Sharedpreferences,我正在制作一个应用程序,它必须在运行时保存和提取数据,而SharedReferences使我的动画滞后。那么,有没有一种方法可以在非UI线程上保存和检索数据呢 或者我的方法有什么问题吗 private void difficultyHandler(){ sharedPref = this.getSharedPreferences(getString(R.string.lScore),Context.MODE_PRIVATE); difficulty = sharedPr
private void difficultyHandler(){
sharedPref = this.getSharedPreferences(getString(R.string.lScore),Context.MODE_PRIVATE);
difficulty = sharedPref.getInt(getString(R.string.difficultyController),0);
if (times >= 1){
long latestScore1 = sharedPref.getLong(getString(R.string.lScore1),0);
long latestScore2 = sharedPref.getLong(getString(R.string.lScore2),0);
editor = sharedPref.edit();
editor.putLong(getString(R.string.lScore1),score);
editor.putLong(getString(R.string.lScore2),latestScore1);
if(latestScore1 >= 60 && latestScore2 >=60 && latestScore1 < 140 && latestScore2 <140){
difficulty = 2;
}else if (latestScore1 < 60 && latestScore2 < 60){
difficulty = 1;
}else if(latestScore1 >= 140 && latestScore2 >=140){
difficulty = 3;
}
editor.putInt(getString(R.string.difficultyController),difficulty);
editor.commit();
}
还有一种方法是这样的
有没有办法将整个方法放到另一个线程上
基本上我想解决滞后的问题
那么,有没有一种方法可以在非UI线程上保存和检索数据呢
SharedReference被缓存。第一次尝试访问给定的SharedReferences(例如GetSharedReferences)时,将出现磁盘I/O。欢迎您在需要首选项之前的某个时间在后台线程上执行此操作
您可以调用apply而不是commit,以在框架提供的后台线程上持久化对SharedReference的更改
那么,有没有一种方法可以在非UI线程上保存和检索数据呢
SharedReference被缓存。第一次尝试访问给定的SharedReferences(例如GetSharedReferences)时,将出现磁盘I/O。欢迎您在需要首选项之前的某个时间在后台线程上执行此操作
您可以调用apply,而不是commit,在框架提供的后台线程上持久化对SharedReferences的更改。SharedReferences使事情变得非常缓慢,首先,我想知道您在SharedReferences中保存了什么类型的数据以及数据量,看看您的方法,这并不是很重要。@nobleG我有32个读写事件,正在API 14级别的Xperia E设备上运行。SharedReferences会让事情变得很慢吗,首先,我想知道您在SharedReferences中保存了什么类型的数据和多少数据,看看您的方法,这并不是很重要。@nobleG我有32个读写事件,运行在API 14级的Xperia E设备上。为了进一步澄清jay的区别,apply与commit相同,后者返回一个布尔结果。为了进一步澄清jay的区别,apply与commit相同,后者返回一个布尔结果。