我已阅读过类似的问题但尚未找到最佳解决方案。例如,我在应用程序启动时从服务器加载用户数据。该信息稍后在许多应用程序组件中使用。我觉得将它存储在单例(例如,在应用程序中)并使其全局可接受时感觉不舒服。我能想到的其他选项是将它作为JSON存储在共享首选项中或将其存储在数据库中。但这些方法可能会导致一些性能下降。你是如何解决这个常见问题的?
答案 0 :(得分:2)
似乎最好的方法是扩展Application类并添加全局变量,下面的其他Stack Overflow问题可能会有所帮助:
另外,如果您查看Application类的javadoc,它会说明全局应用程序状态使用。
需要维护全局应用程序状态的基类。您可以通过在AndroidManifest.xml标记中指定其名称来提供自己的实现,这将导致在创建应用程序/包的过程时为您实例化该类。
查看完整的Javadoc here
答案 1 :(得分:0)
如果要访问所有活动的数据,可以尝试创建扩展活动的基本活动,然后使用基本活动作为其他活动的基类
public class MainActivity extends BaseActivity
然后是BaseActivity
public class BaseActivity extends Activity
在BaseActivity中,将所有值存储为全局变量,然后可以通过扩展基本活动的每个活动传递这些变量
答案 2 :(得分:0)
我认为您应该使用“共享首选项”在整个应用中提供数据。或者,您可以将数据存储在内部存储器或缓存中。取决于数据量,取决于您是否希望它在会话之间可用。
请阅读http://developer.android.com/guide/topics/data/data-storage.html以了解您的选项概述。