Android应用中的全局变量

时间:2013-07-04 10:58:19

标签: android global-variables

存储数据并从所有活动访问数据的最佳方法是什么? 我已经读过两种方式:

  • 使用Singleton类
  • 使用扩展Application类的类

这两种解决方案都有任何已知问题吗? (翻转设备,应用程序转到后台,接听电话)

2 个答案:

答案 0 :(得分:0)

我通常使用Singleton方法。

通常当应该有每个人都可以访问的数据时,有人应该管理它是合理的,所以我会创建一个名为[Something] Manager的Singleton类来管理该数据,并允许访问与其他类相关的任何内容。

我没有遇到你提到的事情的任何问题:翻转设备,应用程序转到后台,接听电话

答案 1 :(得分:0)

我总是使用android.app.Application。

在你的清单定义中

<application
   android:name="GlobalApplication">
   <activity....

然后创建类似GlobalApplication的类

public class GlobalApplication extends Application
{
    /** The current latitude. */
    private double latitude;
    /** The current longitude. */
    private double longitude;

    /**
     * @return the latitude
     */
    public double getLatitude()
    {
       return latitude;
    }

    /**
     * @param latitude the latitude to set
     */
    public void setLatitude(double latitude)
    { 
       this.latitude = latitude;
    }

    /**
      * @return the longitude
      */
    public double getLongitude()
    {
       return longitude;
    }

    /**
     * @param longitude the longitude to set
     */
    public void setLongitude(double longitude)
    {
       this.longitude = longitude;
    }
}

最后,你可以在所有活动中使用这些方法:

longitude = ((GlobalApplication) this.getApplication()).getLongitude();