在正常的開發過程中,我注意到特定的活動在第二次調用時似乎停止了響應。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