我有两个活动的活动A和B,活动A具有3个片段,即A1,A2和A3。 A3是默认选择的片段,显示视频,A2包含一个大的TextView和一个小的EditText在它和A1包含一个ListView。
现在对活性产生的标题栏我有一个按钮,因为它是标题栏是从所有3个片段可见。 这个按钮的的OnClick我用下面的函数打开活动B.。
public void inviteUser() {
if ( getUserType() == ACTIVE ) {
Intent intent = new Intent(this, B.class);
intent.putExtra(Constants.MEETING_ID, (long) session.getSessionId());
intent.putExtra(Constants.INVITE_FROM_SESSION, true);
intent.setFlags(Intent.FLAG_ACTIVITY_NO_HISTORY | Intent.FLAG_ACTIVITY_SINGLE_TOP);
this.startActivityForResult(intent, RESULT_OK);
} else {
Toast.makeText(this, getString(R.string.strNotAPresenterMsg), Toast.LENGTH_LONG).show();
}
}
内部BI调用它setResult(ResultCode) and finish()
现在,我有两个问题 ,当我从片段A1和A2开始B,
1. B(按后退按钮后,即或完成B的工作之后)花费太多时间返回回A之前,2.不回来,直到我浏览到一些其他的片段之后出现任何对话或我旋转装置,一旦我这样做,它开始正常和令人惊讶的表现,
当我从片段A3启动活动B,它立即返回和行为正常。
我曾尝试重写所有这些片段的生命周期方法,并把日志报表每个方法里面。 疼痛是方法调用序列是正常的,同为两种情况。
我试图改变的意图,但没有增益的标志。
我已经加入falg android:configChanges="keyboardHidden|orientation"
我的应用程序的所有活动。
希望我解释这个问题,在任何情况下需要一个代码的任何特定部分。 请comment.I将编辑的问题,并补充说。 帮助家伙!
编辑我在姜饼测试2.3.6它不工作,但我只是检查了在模拟器中运行豆形软糖,它是工作的罚款。 貌似问题与操作系统版本。 任何的想法 ?
编辑2之一的观测重要的一点是当BI按后退按钮时,几毫秒后一次活动的的onResume()和它们的片段被调用。 但即使这样,B之后在屏幕上一段时间,这似乎是手机挂几秒钟....
编辑3也是刚刚才知道的onStop()和的OnDestroy(B)的,当我从片段开始B的不叫A1或A2。 然而,当我在A3他们是完全调用。 可能是什么原因呢?
美国商务部说,“一个活动的可视生命周期,直到到的onStop(相应的调用在onStart()的调用之间发生的)。在此期间,用户可以在屏幕上看到的活动,虽然它可能不是在前台和与用户交互“。
由于的onStop()不能保证活动异常行为时,不叫吧..我也才知道,在蜂窝+设备它总是被调用。 我已经打过电话的onStop()内的onPause(),但不工作。 我现在应该做什么 ?