通常の開発過程で、特定のアクティビティが2回目に呼び出されたときに応答を停止したように見えることに気付きました。
すなわち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"/>
わかりやすくするために、とにブレークポイントを設定しmContext.startActivity(i)
ます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());
}