我正在开发一个Android应用程序。应用程序的内容使用webservice从Web服务器获取。我从网络服务器获取数据并存储在移动数据库中并访问整个应用程序并且其工作正常但现在问题是从移动数据库获取更多记录时花费了一些时间并且应用程序挂起。
是否可以在整个应用程序中维护java集合(如hashmap或hashtable),直到用户注销应用程序,用户可以添加或更新集合中的数据。如果是这样,请指导我。
答案 0 :(得分:1)
您应该使用Android API附带的应用类。
请参阅此链接..
http://www.xoriant.com/blog/mobile-application-development/android-application-class.html
答案 1 :(得分:0)
使用独立类或静态类来维护需要存储的运行时静态数据。
答案 2 :(得分:0)
在Application类中创建了一个全局单例,并且能够从我使用的活动中访问它。
如果要使用很多数据,您可以在Global Singleton
中传递数据。
public class YourApplication extends Application {
public SomeDataClass data = new SomeDataClass();
// Your JAVA collections...
}
然后通过以下方式在任何活动中调用它:
YourApplication appState = ((YourApplication)this.getApplication());
appState.data.UseAGetterOrSetterHere(); // Do whatever you need to with the data here.
有关详细信息,请查看Android Application Class
答案 3 :(得分:0)
以下是几种可能的解决方案:
How to store hashmap so that it can be retained it value after a device reboot?
Saving a hash map into Shared Preferences
一个是序列化/反序列化,另一个是使用共享首选项,因为您需要在用户注销之前保存/编辑数据。
答案 4 :(得分:0)
首先,最好将用户数据库用于存储目的。你应该寻找优化你的db querys以及你使用它们的方式。但无论如何,您可以在第一个活动中创建对象的静态hashmap或arraylist。然后你可以在任何你想要的地方使用这个集合对象并执行任何操作,除非你在处理集合时注销应用程序或任何异常,否则它将是intectll。
类MylunchedActivity扩展了Activty {
public static HashMap map = new HashMap(); }
MylunchedActivity应该是您的第一项活动。然后通过使用MylunchedActivity.map,您可以处理您的地图。
我希望这会有所帮助。
此致 拉维