Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/201.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,可以吗?_Android - Fatal编程技术网

Android 立即返回onCreate,可以吗?

Android 立即返回onCreate,可以吗?,android,Android,我有一个只能创建一次的活动。也就是说,onCreate只能调用一次。如果再次调用,我希望该活动不执行任何操作 是否建议执行以下操作 protected void onCreate(Bundle savedInstanceState) { this.setTheme(android.R.style.Theme_Translucent_NoTitleBar_Fullscreen); super.onCreate(savedInstanceState); if(onCreat

我有一个只能创建一次的活动。也就是说,
onCreate
只能调用一次。如果再次调用,我希望该活动不执行任何操作

是否建议执行以下操作

protected void onCreate(Bundle savedInstanceState) {
    this.setTheme(android.R.style.Theme_Translucent_NoTitleBar_Fullscreen);
    super.onCreate(savedInstanceState);

    if(onCreateWasCalledAlreadyBoolean) {
        setResult(RESULT_OK);
        finish();
        return;
    }

    //Do other stuff here
}

我不明白为什么不。但根本不重新启动活动不是更简单吗

你为什么担心自己不好?性能..未捕获的异常..代码清晰?

我想您已经理解了。我的意思是,您并不是在试图避免不适用于这里的东西(认为只要重新启动
onRestart
s,就会多次调用
onCreate

从技术上讲,这是非常好的

然而,如果你认为你的活动根本不应该被创建,那么你应该更加担心为什么你需要再次称它为“A”

如果你发现自己正在检查你的活动A是否已经被“调用”(?),这可能意味着之前的活动(“B”)在应用程序的逻辑流中有错误,B应该检查它是否确实必须启动该活动A。我的意思是,如果你需要决定是否必须调用某个活动,请在启动前检查

我认为,如果您正在重新启动活动(例如:回家,然后导航回去),那么这不适用,但您应该从离开的位置重新启动活动(我可以告诉您,B)。你不会导航回A。而且你也没有给出太多细节,所以我猜这是某种闪屏,就像evilmage93所说的

如果这确实是一种启动屏幕,我建议用户在返回任务堆栈时显示它(与他的建议相反)。换句话说,每当用户从其“前门”重新启动应用程序时

虽然这最终是一个设计决策,但我更喜欢在应用程序第一次加载(“输入”)到堆栈中时看到启动屏幕,如果(显然)在调用B之前完成a,它应该可以正常工作(启动屏幕应该在完成后
finish
本身,即使是在第一次运行时)。这是一个一致性问题:当用户执行相同的任务时,相同的应用程序应该以相同的方式运行(从其“前门”启动应用程序)

尽管如此,我还是回答了你的一些一般性问题,因为你是这样问的

//编辑:

最后,通过查看onCreateWasCalledAlreadyBoolean的
onCreateWasCalledAlreadyBoolean
,我担心您可能试图重新设计活动生命周期机制的一部分。在这种情况下,不要:继续常规的活动逻辑,因为用户期望这种行为。一般来说,我不会建议人们仅仅因为某个活动被系统终止并重新启动就中断它的正常加载