代码之家  ›  专栏  ›  技术社区  ›  Jeff Axelrod

Android活动测试示例具有令人困惑的预期

  •  0
  • Jeff Axelrod  · 技术社区  · 15 年前

    我关心的是保留我的应用程序的活动,比如字符串、int等非小部件成员。这些活动在OnCreate期间初始化,不会被用户更改。因此,我认为没有任何理由在OnPause期间保存它们,因为即使操作系统在暂停后直接终止活动,OnCreate()也会重新初始化这些成员。

    那么,假设这些非小部件成员在暂停时不会受到伤害(假设应用程序最终会恢复)安全吗

     public void testStatePause() {
        Instrumentation mInstr = this.getInstrumentation();
        mActivity.setSpinnerPosition(TEST_STATE_PAUSE_POSITION);
        mActivity.setSpinnerSelection(TEST_STATE_PAUSE_SELECTION);
        mInstr.callActivityOnPause(mActivity);          
        mActivity.setSpinnerPosition(0);
        mActivity.setSpinnerSelection("");
        mInstr.callActivityOnResume(mActivity);
        int currentPosition = mActivity.getSpinnerPosition();
        String currentSelection = mActivity.getSpinnerSelection();
        assertEquals(TEST_STATE_PAUSE_POSITION,currentPosition);
        assertEquals(TEST_STATE_PAUSE_SELECTION,currentSelection);
     }          
    
    1 回复  |  直到 15 年前
        1
  •  1
  •   Cheryl Simon    15 年前

    可能的原因是,当你的应用程序处于暂停状态时,它可能会被终止。举个例子:

    1. 用户选择3
    2. Android删除活动b/c它需要资源
    3. 用户返回活动
    4. onCreate被调用-初始化为5