在正常的开发过程中,我注意到一个特定的活动在第二次被调用时似乎停止了响应。
IEmenu->(intent)->activity->(back button)->menu->(intent)
logcat 中没有任何相关内容。
我什至不知道从哪里开始调试,也不知道要显示什么代码,所以这里是onClick
和onResume
片段:
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);
}
并在正在启动的活动中:
@Override
protected void onResume() {
super.onResume();
...
清单上也没有什么异常:
<activity
android:name=".NVViews.NVGlobeNavigatorVC"
android:theme="@style/WindowTitleBackground"
android:label="GlobeNavigator"/>
为了清楚起见,我在mContext.startActivity(i)
and上放置了断点super.onResume()
。我单击带有 的视图,onClickListener
两个断点都按预期命中。然后我按下返回按钮,返回菜单。 onPause()
按预期调用。
我触摸视图以再次启动活动,并且断点startActivity
被击中但不在onResume()
目标活动中。屏幕变黑了,我能重新开始的唯一方法就是重新启动应用程序。如果我暂停调试器,它会暂停,dalvik.system.NativeStart()
这意味着该活动永远不会重新启动。
我认为这无关紧要,但我正在使用 Intellij IDEA 并删除了所有输出目录,使缓存无效并完成了完全重建。
目标 API 是 8。我在 2.3 和 4.0.4 上进行了测试。
有任何想法吗?我难住了。
[编辑]
在onPause
中,我将一些东西保存到首选项。的目的onResume()
是让他们再次回来:
@Override
protected void onPause() {
super.onPause();
SCPrefs.setGlobeViewViewPoint(globeView.getViewPoint());
SCPrefs.setGlobeViewZoom(globeView.getZoom());
SCPrefs.setGlobeViewScale(globeView.getScale());
}