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

时间:2018-09-12 17:26:22

标签: android android-lifecycle

是否可以确定onCreate()是否在onResume()之前被调用。

我不想在onCreate()中做任何事情以进行视图初始化等,但是我不想在onResume()中再做一次,而且我仍然希望每次恢复时都可以完成这些工作。 ..

有没有一种方法可以确定在输入当前onResume()之前是否刚刚创建了应用程序?

1 个答案:

答案 0 :(得分:1)

没有内置的系统调用可告诉您是否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;
    }
}