2013-07-23 146 views
1

我有一个活动是发送一些数据到服务器onCreate.My的问题是,如果我按手机上的锁定按钮屏幕关闭,因为我们都知道,但当我按下锁定按钮要打开按钮,屏幕将打开并再次发送数据,以便复制数据。我只需要一次发送数据,该怎么做。?Android的保存活动状态

回答

1

送在onCreate的数据,但只有当savedInstanceState为null:

protected void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.my_layout); 
    if(savedInstanceState == null) { 
     // send data in a background thread 
    } 
} 

如果活动是重新创建(你的情况),savedInstanceState不为空,它将包含任何有状态的信息,你需要设置。

+0

谢谢gunar。:) lemme测试。 – devian

+0

非常感谢你。:)我更怀疑我有。我正在开发一个试用版,所以我正在检查服务器的日期。检查是在第一个活动oncreate。但问题是当我去第二个活动有一个后退按钮。当我按下该按钮时,显然它会去第一次然后它会检查日期。我不想检查日期,每次我只需要检查应用程序启动时的日期就是这样。希望你能帮我。! – devian

+0

那么,你可以有一个自定义对象(你可以从任何地方引用为单例)。该对象可以保留你需要的信息(日期)。所以你从服务器获取日期并将其设置在该对象中:DateKeeper.getInstance()。setDate(serverDate);'。下一次你想得到这个日期,你会检查存储的日期是否为空。如果为空,则下载它(这将是下载的第一个日期);否则,请勿下载。希望它有道理...... – gunar