所以我有两个活动。main 称为Main, child 称为Child。在主活动中单击按钮时,它会触发以下代码:
Intent i = new Intent(Main.this, Child.class);
Main.this.startActivity(i);
这将打开Child活动。
一旦我调用完成()或按下子活动中的后退按钮而不是返回主活动,应用程序就会关闭。你能告诉我问题可能出在哪里吗:(
PS通过反复试验我发现如果编辑AndroidManifest.xml并添加
android:theme="@android:style/Theme.Dialog"
在Child的声明中,后退按钮和调用finish()的行为与预期的一样:关闭子活动并使主要活动成为焦点。问题是当我开始输入EditText时,屏幕开始闪烁(相当奇怪)。所以我不能将它用作对话框。我的主要活动使用相机,因此可能会出现问题。虽然当子活动启动时,会触发onPause事件并停止摄像头,直到调用onResume 。
编辑:
所以我尝试使用startActivityForResult并添加
Toast.makeText(this, "onPause", Toast.LENGTH_SHORT).show();
到onPause和类似的onResume方法。当 Child 返回时,不会触发onResume 。我什至覆盖了onActivityResult,甚至没有被触发。:(太奇怪了...
我想我找到了问题,但我自己无法解决
当Child活动被激活时,在Main活动中调用onStop和之后的onDestroy 。但为什么?!?