我在后台运行了一个服务。它通过IP获取一些字符串。 它应该截断它们并将它们与一些变量进行协调。
所以我想:
public class Listener extends Service{
public void main(){
//fetch and preprocess data
data=fetched_string;
}
public String data=null;
public String getData(){return data;}
}
根据我的理解,这应该有效。但是如何从另一个类中访问这个字符串数据或者我的想法有什么问题呢?
或许有一个更优雅的Android解决方案?
答案 0 :(得分:1)
如果您的应用程序正在运行时服务正在运行,即不在另一个进程中被BroadcastReceiver调用,请扩展Application类shown here并让您的服务进行设置。然后,应用程序中的其他类可以访问全局变量。否则,让服务将它们写入Sqlite数据库并从那里访问它们。
答案 1 :(得分:0)
生活在单身类中的全局变量被建筑纳粹鄙视,但真正使用在android上。它可以被应用程序的所有类访问,它们在同一个VM中运行,但不会在应用程序重新启动后继续存在。
要在重新启动时存储数据,可以选择3个选项 - 共享首选项(适用于小数据量) - sqlite,如果有很多,数据不是很结构,你真的需要排序/查询 - 使用您选择的数据绑定解决方案将其序列化为JSON(羞辱自我广告:https://github.com/ko5tik/jsonserializer)并将其存储在文件中(如果数据是结构化的),并且您希望拥有对象