gpt4 book ai didi

java - 在 Android Studio 中将数据从 onReceive 传输到 SQL 数据库

转载 作者:行者123 更新时间:2023-12-01 09:00:30 25 4
gpt4 key购买 nike

我有一个可以运行的SQL数据库,以及可以运行的广播接收器,但我似乎无法将信息从数据库中获取到全局变量中(latInfo, LonInfo),这样我就可以使用它们将数据输入数据库。 BroadcastReceiver 从获取 LocationManager gps 坐标的服务获取信息,而 location_text 是更新的 textview每次设置一组新坐标时。

@Override
protected void onResume() {
super.onResume();
if(br == null){
br = new BroadcastReceiver() {
@Override
public void onReceive(Context context, Intent z) {
//location_text.append("\n" + z.getExtras().get("coordinates"));
latInfo = (double) z.getExtras().get("latitude");
lonInfo = (double) z.getExtras().get("longitude");
String x = "Latitude: " + latInfo + ", Longitude: " + lonInfo + "\n";
location_text.append(x);

}

};

}

registerReceiver(br, new IntentFilter("location_update"));
}

这是我想要实现的向数据库添加数据的方法简而言之,一旦我可以进入全局变量(lonInfolatInfo)的数据被下面的类注册,它就会调用另一个类来获取单元格信号cdmaSignal 并且所有三个都被插入到数据库中。

public void infoCollection(){
if(lonInfo != 0 && latInfo != 0){
cdmaInfo = sl.cdmaSignal;

SQLInfoDatabase sid = new SQLInfoDatabase(cdmaInfo,lonInfo,latInfo);

cdmaSignal.setText(cdmaInfo);

dbh.addInfo(sid);
}
}

如何从 onReceive 方法获取接收到的数据,以在服务更新之间保留为全局变量?

最佳答案

您可以创建静态变量或可以使用单例类

下面是单例类的示例

public class SharedClass
{
private static SharedClass sharedClass;

// global variables
public double latInfo, LonInfo;

public static SharedClass getInstance()
{
if (sharedClass == null)
sharedClass = new SharedClass();

return sharedClass;
}

private SharedClass()
{
}
}

您可以通过执行此操作从应用程序中的任何位置访问 latInfo 或 LonInfo

SharedClass.getInstance().latInfo
SharedClass.getInstance().LonInfo

关于java - 在 Android Studio 中将数据从 onReceive 传输到 SQL 数据库,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41713757/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com