在正常的开发过程中,我注意到特定的活动在第二次调用时似乎停止了响应。onResume()未被第二次调用活动
即menu->(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"/>
对于clar ity,我在mContext.startActivity(i)
和super.onResume()
上设置了断点。我点击onClickListener
的视图,并且两个断点均按预期击中。然后按下返回按钮,返回到菜单。按预期调用onPause()
。
我触摸视图以再次启动该活动,并且目标活动中的startActivity
中的断点被击中,但不在onResume()
中。屏幕变黑,我可以重新开始的唯一方法就是重新启动应用程序。如果我暂停调试器,它暂停在dalvik.system.NativeStart()
,这意味着该活动永远不会重新启动。
我不认为它是相关的,但我使用Intellij IDEA并删除了所有的输出目录,使缓存失效并完成了重建。
目标API是8.我已经测试过2.3和4.0.4。
任何想法?我很难过。
[编辑]
在,我一些东西保存到首选项。的onResume()
目的是为了再次让他们:
@Override
protected void onPause() {
super.onPause();
SCPrefs.setGlobeViewViewPoint(globeView.getViewPoint());
SCPrefs.setGlobeViewZoom(globeView.getZoom());
SCPrefs.setGlobeViewScale(globeView.getScale());
}
是否正确地调用了第二个活动的oncreate? – stinepike 2013-03-14 22:01:45
@StinePike如果'Activity'在后台不应该被调用。你重写'onPause()'并在那里做任何事情? – codeMagic 2013-03-14 22:02:37
@StinePike它没有被调用,但我不期望它是因为它在堆栈的顶部,Android不太可能会破坏我的活动。 – Simon 2013-03-14 22:07:01