Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/181.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android 是否有一种方法可以确定onCreate()是否在onResume()之前被调用_Android_Android Lifecycle - Fatal编程技术网

Android 是否有一种方法可以确定onCreate()是否在onResume()之前被调用

Android 是否有一种方法可以确定onCreate()是否在onResume()之前被调用,android,android-lifecycle,Android,Android Lifecycle,是否有一种方法可以确定onCreate()是否在onResume()之前被调用 我不想在onCreate()中执行视图初始化等操作,但我不想在onResume()中再次执行这些操作,我仍然希望每次恢复时都执行这些操作 是否有方法确定在输入当前onResume()之前是否刚刚创建了应用程序?没有内置的系统调用来告诉您是否调用了onResume(),因为该活动只是暂停了,还是因为完全重新创建了该活动。所以你必须自己跟踪它 在onCreate()中设置一个布尔值,然后在onResume()中检查它相对

是否有一种方法可以确定onCreate()是否在onResume()之前被调用

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


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

没有内置的系统调用来告诉您是否调用了
onResume()
,因为该活动只是暂停了,还是因为完全重新创建了该活动。所以你必须自己跟踪它

onCreate()
中设置一个
布尔值,然后在
onResume()中检查它相对容易:


为什么不总是在onResume中执行这些操作,并将它们从onCreate中删除?为什么不只在
onResume()
中将您想要的内容放在
onResume()
中?它是用
onCreate()
调用的。只需在
onCreate
中初始化一个计数器,计算调用了多少次
onResume
?在每次调用
onCreate
时,将计数器设置为0。在恢复时的
onResume
中,检查(并随后递增)计数器。如果它是0,
onCreate
刚刚被调用,如果它不是零,则活动已恢复(no
onCreate
调用)。这不是我的代码,出于某种原因,某些内容必须在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;
    }
}