如何从android java中的cordova-plugin-nativestorage获取数据
美好的一天,我为Cordova制作原生背景mod,我需要从js到java获取数据。 我用插件cordova-plugin-nativestorage在js中保存数据,代码如下:
Save data function onLoad() { document.addEventListener("deviceready", onDeviceReady, false); } function onDeviceReady() { NativeStorage.setItem("somekey", "value", null, null); }
但我的问题是:我不知道如何在没有Cordova活动的后台服务中使用java获取此数据(“值”)。
Backgroud服务java:
package cz.oznameni; public class Backgroundoznameni extends Service { }
我做了一个更改,所以你应该方便地访问保存的值。
请先重新安装插件:
cordova plugin remove cordova-plugin-nativestorage cordova plugin add https://github.com/TheCocoaProject/cordova-plugin-nativestorage
这将安装开发版。 这是因为这个更新的代码没有推送到NPM( 更新 :现在没有必要使用开发版本,NPM上的版本就好了)。
为了使用键检索值,我编写了以下方法:
String getValue(Context context, String key, String defaultValue) { SharedPreferences settings = context.getSharedPreferences(PREFS_NAME, Activity.MODE_PRIVATE); return settings.getString(key, defaultValue); }
PREFS_NAME
应声明如下:
public static final String PREFS_NAME = "NativeStorage";
在onCreate
方法中,上下文应该是可访问的。
所以整体看起来应该是这样的:
public class Backgroundoznameni extends Service { public static final String PREFS_NAME = "NativeStorage"; @Override public void onCreate() { String value = getValue(Backgroundoznameni.this, "somekey", null); } String getValue(Context context, String key, String defaultValue) { SharedPreferences settings = context.getSharedPreferences(PREFS_NAME, Activity.MODE_PRIVATE); return settings.getString(key, defaultValue); } }
注意:代码未经过测试!
编辑:这在Github问题中进一步记录。
- 在Android中的后台自动发送邮件
- 尝试在空对象引用上调用虚方法’java.lang.String org.jsoup.nodes.Element.ownText()’
- 如何检查firebase数据库中是否存在值 – android
- 经过一段时间后重复运行方法的服务
- 在Android中加载文件夹中的所有图像
- Android GPS获得驾驶汽车的速度
- 想要使用GoogleMaps – OnMyLocationChangeListener却无法实现吗? 任何其他选择
- NoClassDefFoundError:com.opencsv.CSVWriter
- Android Java ServerSocket端口号不是它应该的