安卓应用程序中的全局变量



存储数据并从所有活动访问数据的最佳方式是什么?我读到有两种可能:

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

这两种解决方案是否存在已知问题?(翻转设备,应用程序进入后台,接收呼叫)

我通常使用Singleton方法。

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

我在你提到的事情上没有遇到任何麻烦:翻转设备,应用程序进入后台,接收呼叫

我一直使用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();

相关内容

  • 没有找到相关文章