代码之家  ›  专栏  ›  技术社区  ›  JohnyTex

有没有办法确定onCreate()是否在onResume()之前被调用过

  •  -2
  • JohnyTex  · 技术社区  · 7 年前

    有没有办法确定onCreate()是否在onResume()之前被调用过。

    我不想在onCreate()中执行视图初始化等操作,但我不想在onResume()中再次执行这些操作,我仍然希望每次恢复时都执行这些操作。。。

    1 回复  |  直到 7 年前
        1
  •  1
  •   Ben P.    7 年前

    没有内置的系统调用可以告诉您 onResume() 是因为活动被暂停而被调用,还是因为活动被完全重新创建而被调用。所以你得自己追踪。

    boolean 在里面 onCreate() onResume()

    public class MainActivity extends AppCompatActivity {
    
        private boolean didCreate;
    
        @Override
        protected void onCreate(Bundle savedInstanceState) {
            ...
            this.didCreate = true;
        }
    
        @Override
        protected void onResume() {
            ...
    
            if (didCreate) {
                ...
            } else {
                ...
            }
    
            this.didCreate = false;
        }
    }