为什么而从另一个活动的几个片段回来活动是挂?(Why Activity is hanging whi

2019-07-05 15:22发布

我有两个活动的活动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(),但不工作。 我现在应该做什么 ?

Answer 1:

这是真的,我很难解释我的问题,以SO社区,甚至难以被理解问题的根源,但一旦我跟踪的误差源,它只是花了几分钟,以解决这个问题。

该问题是由于在活动的布局图所包括的布局(比如说X)。 在X的知名度正在决定当前片段。 正是在A3和View.GONE其他两个片段可见。 我是从a1和a2删除的布局和问题得到解决......

不过,我仍然无法理解它与B的的onStop和的onDestroy目前已被完全叫......如果任何人都可以找到比请分享有关..

希望这些信息可以为别人有帮助,



文章来源: Why Activity is hanging while coming back from another activity's few fragments?