一个困扰我的Android场景

时间:2014-09-25 12:46:52

标签: java android arraylist

这就是我组织数据的方式:

  • 我在Android项目中创建了一个Application类
  • 在Application Class中,我有一个ArrayList Of Objects
  • 在其他活动中,我调用了一些Application类的方法,它们将上述列表的一部分返回给我

现在困扰我的场景:  在某个活动中如果按下按钮

  1. 我检查是否有互联网连接
  2. 如果没有,我启动Intent打开用户启用移动网络或WiFi的设置
  3. 当它返回时虽然似乎应用程序被销毁,因为再次调用onCreate但是那时我的Application类中的arrayList是null。所以我的问题是

    • 为什么我的活动被破坏而不仅仅是暂停?
    • 如果它被销毁,为什么我的应用程序从一开始就不会启动,但它只从启动了Activity Action.Settings的Activity开始?
    • 如果只销毁最新的Activity而不是整个应用程序,那么应用程序中的数据怎么会丢失?

    这就是我在Application类

    中声明对象的ArrayList的方式
            private static ArrayList<PointOfInterest> pois;
    

    编辑:我在活动的onDestroy()上放了一个Log.i(),但从未打印过。但是当我从Settings返回时,onCreate()被调用(没有调用onDestroy),这怎么可能?

1 个答案:

答案 0 :(得分:1)

当应用程序在后台时,os可以使静态字段无效。 所以他们应该永远恢复。

see this post