关于android-studio:android生命周期

5次阅读

共计 1617 个字符,预计需要花费 5 分钟才能阅读完成。

前言

android 与 angular 有很多相似之处。正所谓学会了一门语言,其余语言都是相似的。

Activity 生命周期

咱们能够将 android 中的 activity 类比于 angular 中的组件

与组件的生命周期相似,activity 中也有很多状态,在这些状态产生变更时会回调函数。Activity 类提供六个外围回调:onCreate()、onStart()、onResume()、onPause()、onStop() 和 onDestroy()。而咱们发明的每一个本人的 activity 都会继承 Activity 类,咱们能够笼罩这些办法。

onCreate()

onCreate()办法会在 activity 创立时触发,用于进行初始化设置。咱们必须实现此办法,他会进行创立视图工作。他会传递一个 Bundle 参数,提供之前保留的活动状态。

onStart()

此时 Activity 曾经可见了,然而还没呈现在前台,咱们还看不到,无奈与 Activity 交互。如果 Activity 变得可见,零碎接下来会调用 onResume()办法,如果 Activity 变得不可见,接下来会调用 onStop()办法。

onStop()

此时 Activity 曾经不可见了,然而 Activity 对象还在内存中,没有被销毁。例如,当新启动的 Activity 笼罩整个屏幕时,可能会产生这种状况。如果流动再次可见,接下来会调用 onRestart()办法。

onResume()

Activity 在前台时,会调用此办法。利用会始终放弃这种状态,直到某些事件产生,让焦点远离利用。此类事件包含接到复电、用户导航到另一个 Activity,或设施屏幕敞开。

onPause()

此办法示意 Activity 不再位于前台。这个办法实现之前,不会持续运行下一个流动,如果流动返回到前台,接下来会调用 onResume(), 如果流动变得不可见,接下来会调用 onStop()。

onDestroy()

Activity 将要完结(用户敞开 Activity),或者配置变更(如旋转屏幕),零碎将要销毁流动。

保留 Activity 状态

比如说旋转屏幕时,将会触发 Activity 的 onDestroy()办法并从新加载 Activity,如果咱们想要保留 Activity 的状态,咱们须要用到 onSaveInstanceState()办法,他会在 onDestroy()办法之前被调用。

@Override
public void onSaveInstanceState(Bundle savedInstanceState) {super.onSaveInstanceState(savedInstanceState);
    savedInstanceState.putInt("seconds", seconds);
    savedInstanceState.putBoolean("running", running);
    savedInstanceState.putBoolean("wasRunning", wasRunning);
}

Bundle 类型相似于容器,外面保留着键值对,咱们往参数外面 put 键值,在 onCreate()办法里可通过键获取值。

@Override
protected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);
    if (savedInstanceState != null) {seconds = savedInstanceState.getInt("seconds");
        running = savedInstanceState.getBoolean("running");
        wasRunning = savedInstanceState.getBoolean("wasRunning");
    }
}
正文完
 0