对活动生命周期的困惑

时间:2013-10-14 03:50:55

标签: android android-intent android-activity

我有一个应用程序验证用户访问内部活动,应用程序有几个活动从前一个活动获取数据

所以我对活动生命周期感到有点困惑

我将活动OnCreate中的Bundle数据读入本地变量,并根据该数据读取异步任务中的DB。此数据库数据显示在我的应用程序上。

现在,如果我切换到另一个应用程序,我的应用程序将使用它们具有本地变量/静态变量数据(从DB数据中读取),

我有一个保存用户票等信息的SingleInstance类,如果我们之间接到电话,该变量是否会保留在app的内存中。

我对这部分感到有点困惑。

由于文档建议您需要将未保存的数据存储在共享首选项中。

如果有人强调那就好了。

1 个答案:

答案 0 :(得分:2)

首先,您需要确保根据这句话了解新应用和新活动之间的区别:

  

现在,如果我切换到另一个应用程序,我的应用程序会在切换回我的应用程序后将数据库数据与他们一起使用

如果您实际上是指不同的应用程序,答案是“在另一个应用程序中没有(如果您的应用程序也是如此)”您无法访问另一个应用程序数据库(至少不能直接访问),唯一的方法是如果该应用程序实现一个内容提供商与另一个应用程序共享其数据,默认情况下,android应用程序就像沙盒一样,除非特别声明,否则不会与其他应用程序共享任何信息,在使用相同密钥签名的两个应用程序之间有另一个规则,但这是一个不同的故事和巨大的进步与此问题无关的话题......

如果您“意味着转到另一个应用程序(不是我的应用程序)然后尝试再次使用MY应用程序”答案为“是”,则数据库中的信息可以在所有建筑组件中访问,例如“活动” ,服务“属于同一个应用程序,数据库中的信息即使在完全关闭应用程序之后也会持久存在(共享首选项也是如此),但共享首选项和数据库之间存在巨大差异,并且知道何时使用其中一个或另一个区分好的和优秀的开发人员,黄金法则(但不是唯一或最好的)是,DB用于复杂的查询和关系数据,需要某种预处理或后处理来获得正确的值,这意味着共享偏好只是一个“键/值“在应用程序上下文中持久存储的映射

希望这有助于。

问候!