onResume()未在第二次调用时调用Activity

Sim*_*mon 5 android

在正常的开发过程中,我注意到特定活动似乎在第二次调用时停止响应.

menu->(intent)->activity->(back button)->menu->(intent)

在logcat中没有任何相关内容.

我甚至不知道从哪里开始调试这个也不知道要显示的代码是什么onClickonResume片段:

 if (!dictionary.getClassName().equals("")) {

            this.setOnClickListener(new OnClickListener() {
                public void onClick(View v) {

                    Intent i;

                    i = new Intent(mContext, NVGlobeNavigatorVC.class);
                    i.putExtra("PAGE_TITLE", title);
                    i.putExtra("TITLE", _dictionary._title);

                    mContext.startActivity(i);

            });
        } else {
            findViewById(R.id.greaterthan).setVisibility(View.GONE);
        }
Run Code Online (Sandbox Code Playgroud)

并在正在启动的活动中:

@Override
protected void onResume() {

    super.onResume();

    ...
Run Code Online (Sandbox Code Playgroud)

清单中没有任何异常:

<activity
    android:name=".NVViews.NVGlobeNavigatorVC"
    android:theme="@style/WindowTitleBackground"
    android:label="GlobeNavigator"/>
Run Code Online (Sandbox Code Playgroud)

为清楚起见,我将断点放在mContext.startActivity(i)super.onResume().我单击视图,onClickListener并且两个断点都按预期命中.然后按下后退按钮,返回菜单. onPause()按预期调用.

我触摸视图再次启动活动,断点打开startActivity但不在onResume()目标活动中.屏幕变黑,我可以再次走的唯一方法是重启应用程序.如果我暂停调试器,它会暂停,dalvik.system.NativeStart()这意味着活动永远不会重新启动.

我不认为它是相关的,但我正在使用Intellij IDEA并删除了所有输出目录,使缓存无效并完成了完全重建.

目标API是8.我已经在2.3和4.0.4上测试过.

有任何想法吗?我很难过.

[编辑]

onPause,我将一些东西保存到prefs.目的onResume()是让他们再次回来:

@Override
protected void onPause() {

   super.onPause();

   SCPrefs.setGlobeViewViewPoint(globeView.getViewPoint());
   SCPrefs.setGlobeViewZoom(globeView.getZoom());
   SCPrefs.setGlobeViewScale(globeView.getScale());

    }
Run Code Online (Sandbox Code Playgroud)

Sim*_*mon 4

我发现了这个问题,而且有点深奥。

我有一个大型静态数据结构,它加载在类静态初始化程序中。该初始化程序中存在一个错误,如果数据结构仍在加载,则在第二次调用它时会导致无限循环。

因为该类在我的活动中被引用,所以类加载器在调用onCreate()之前加载它。onResume()

该循环显示活动加载程序已挂起。