当启动具有自定义相机实现的新活动时,主活动关闭(调用 onStop 并将 IsFinishing() 设置为 true)。调用其他活动时不会发生这种情况。我的工作假设主要活动由于内存不足而关闭,因为我可以开始其他活动而不会出错。当我调用相机活动时,如何防止主要活动被关闭,因为在主要活动中启动了一项服务,该服务将被重新用于相机活动?
调用新活动的代码:
startActivity(new Intent(Context, MyClass.Snapshot.class));
当启动具有自定义相机实现的新活动时,主活动关闭(调用 onStop 并将 IsFinishing() 设置为 true)。调用其他活动时不会发生这种情况。我的工作假设主要活动由于内存不足而关闭,因为我可以开始其他活动而不会出错。当我调用相机活动时,如何防止主要活动被关闭,因为在主要活动中启动了一项服务,该服务将被重新用于相机活动?
调用新活动的代码:
startActivity(new Intent(Context, MyClass.Snapshot.class));
尝试使用startActivityForResult
向 Android 发出信号,表明您希望 Activity 获得结果。
我不认为保持 MainActivity 关闭是一个可行的选择。您说原因与 MainActivity 启动服务有关。好吧,实际上任何对 Context 的引用都可以启动服务。你可以很容易地使用单例。我认为保留 Main Activity 没有必要,也不是一个好习惯,因为 Android 总是可以决定这样的事情。您可能会尝试的一件事是启动Sticky 服务,看看是否会有所作为。让我们知道。
答案是我自己的愚蠢。在我的 startActivity 调用下方有一堆注释代码,但我忘了注释掉底部的 1 行......那行调用 onFinish() 可以解释一切。
谢谢大家试图诊断我的愚蠢。