如何为每个android的生命周期输入正确的代码?

时间:2011-01-08 01:26:12

标签: android

onCreate和onStart循环之间有什么区别? 我混淆了为这些周期输入正确的代码。 例如,在我的情况下,我有主要活动listview来显示数据库和其他活动的数据,以创建数据到数据库。 listactivity调用创建数据的活动。创建数据成功后,它将返回listactivity。并且应该更新listview中的数据。

当我在onCreate方法上放置初始化数据库,游标和适配器时,listActivity在创建数据后不会更新最新数据。 但如果我把它放在onStart方法上,它就会更新。

我的问题:在这种情况下,将所有初始化放在OnStart方法上是否正确? 因为我认为如果有一个更新的数据,将每个数据库记录重新初始化为listview会很昂贵。

2 个答案:

答案 0 :(得分:2)

  

onCreate和onStart循环之间有什么区别?

首次创建活动时会调用

onCreate()。只要活动变得可见,就会调用onStart(),其中包括首次创建活动时(onCreate()之后)以及停止返回屏幕后(例如,另一项活动占用屏幕)

  

我有主要活动listview来显示来自数据库和其他活动的数据以创建数据到数据库。 listactivity调用创建数据的活动。创建数据成功后,它将返回listactivity。列表视图中的数据应该更新。

使用托管Cursor,这将自动发生。请参阅startManagingCursor()上的Activity

答案 1 :(得分:0)

这取决于。您是否希望每次用户返回可见活动时重新加载数据?如果是,您应该在onStart()中添加这些方法。如果您希望在最开始时加载值(更像是一次性工作)并且不想重新加载,那么onCreate是正确的位置。

请参阅doco以获取有关onCreate和onStart的说明。链接中的此图表很有用 http://developer.android.com/guide/topics/fundamentals.html#actlife