私はすべてのアクティビティをBaseActivityから継承しました。それは1年間素晴らしい仕事をしてきました。 HomeActivity
は、第2ラインであるbase.onCreateを呼び出す始めたとき、そうアクティビティライフサイクルの問題 - 4.0.3にアップグレード
12-28 20:09:22.285: DEBUG/IDATT.HomeActivity(24662): onCreate
12-28 20:09:22.285: DEBUG/IDATT.BaseActivity(24662): onCreate
12-28 20:09:22.442: DEBUG/IDATT.HomeActivity(24662): onResume
12-28 20:09:22.442: DEBUG/IDATT.BaseActivity(24662): onResume
12-28 20:09:22.578: DEBUG/IDATT.HomeActivity(24662): onCreate
12-28 20:09:22.578: DEBUG/IDATT.BaseActivity(24662): onCreate
12-28 20:09:22.653: DEBUG/IDATT.HomeActivity(24662): onResume
12-28 20:09:22.653: DEBUG/IDATT.BaseActivity(24662): onResume
12-28 20:09:22.785: DEBUG/IDATT.HomeActivity(24662): onCreate
12-28 20:09:22.785: DEBUG/IDATT.BaseActivity(24662): onCreate
12-28 20:09:22.863: DEBUG/IDATT.HomeActivity(24662): onResume
12-28 20:09:22.863: DEBUG/IDATT.BaseActivity(24662): onResume
: - 私は私のアプリは動作を停止4.0.3に私のネクサスSをアップグレードした後、今、私はそうのように見える無限ループを取得します。 その後、onResume
が呼び出され、その後何らかの理由でBaseActivity.onCreateが再び呼び出されました。
これは意味がありますか?私が気づいたことの一つは、画面を回転させるまですべてが正常に動くことです。それから点滅が始まります。たとえ私がホームを叩いて再びアプリケーションを開いたとしても。私はプロセスを強制終了し、私は..
EDIT再び画面を反転しようとするまで、それはよさそうだ再起動した場合でも、私はすべてのコードサンプルを削除 - 彼らは関係ありません。 問題が見つかったようです。私は私のApplication
@Override
public void onConfigurationChanged(Configuration newConfig)
{
Log.d(LOG_TAG, "onConfigurationChanged");
super.onConfigurationChanged(newConfig);
//reset locale to our defined locale in settings
// String l = Preferences.getLocale(getApplicationContext());
// Locale locale = new Locale(l);
// if (!l.equals(""))
// {
// newConfig.locale = locale;
// Locale.setDefault(locale);
// getBaseContext().getResources().updateConfiguration(newConfig, getBaseContext().getResources().getDisplayMetrics());
// }
}
コメントコードの原因となった問題でonConfigurationChange
を上書きしました。私が(ロケールを変更するために)何をやったかのように思えますが、UI全体が再起動して繰り返していました。今私はより良い方法を考え出す必要があります。
ので、AndroidManifest.xmlを編集し、アンドロイドを追加する4.0
は 'BasActivity'と' HomeActivity'両方のあなたの 'のonCreate(...)'と 'onResume()'コードを表示します。 – Squonk
コードの多くは – katit
は、私は 'updateConfiguration(...)を使用したことがありません'それは '(...)onConfigurationChanged'トリガするために起こっている私に示唆して..私は変更せずにそれを最大限にコメントしようとした、あり。いいえ?そうであれば、それはあなたの無限ループがどこから来ているのかです。 'updateConfiguration(...) 'の呼び出しをコメントアウトしたままにして、他の行のコメントを外し、オーバーライドした' onConfigurationChanged(...) 'メソッドの最後に' super.onConfigurationChanged(newConfig); 'を移動するとどうなりますか?つまり、 'newConfig'を変更してロケールを設定した後、最後に呼び出します。 – Squonk