1

電話が特定のタイプの充電器に接続され、「カーモード」または「運転モード」になったときにアプリケーションで発生する問題を処理しようとしています。

実行中のアプリケーションでは、onDestroy() が呼び出され、その直後に onCreate() が呼び出され、アプリケーションが正常に再起動します。ただし、UI 要素 (新しく作成されたメイン アクティビティ内) を更新するための後続の呼び出しは効果がなく、レイアウトの範囲を失ったように見えます。

    RelativeLayout splash = (RelativeLayout) findViewById(R.id.splash);
    splash.setVisibility(View.VISIBLE);

私が説明していない onDestroy() が発生している可能性はありますか? 私は必要がないと思ったので、あまり onDestroy のクリーンアップを行いません。

4

2 に答える 2

0

電話が回転すると、アクティビティが破棄されて再作成されます。車の充電器に差し込むと、通常、電話機は横向きモードになり、回転させて (おそらく縦向きから) 呼び出しonDestroyます。いくつかのアクティビティ フラグを使用してこの動作を防止する方法がありますが、Google では使用しないことをお勧めします。

何が起こっているのかを理解するには、このアクティビティのコードをさらに確認する必要があります。

また、DeeV が指摘しているように、onDestroy が呼び出されるまでにアクティビティはなくなっているため、実行していることを実行するのに適切な場所ではない可能性がありますが、確認するにはさらにコードが必要です。

補足として、キーボードを上にスライドさせると(スライドアウトキーボードを備えた電話で)、同じ効果が得られます.

于 2012-03-03T04:19:35.743 に答える
0

Activityが呼び出されるまでに UI から切り離されているためonDestroy()、UI 呼び出しを行っても意味がありません。スプラッシュを表示する必要がある場合は、View.VISIBLEin onCreate()onResume()、またはMaybe onPause()に設定します。onPause()違う行動をするかどうかは完全にはわかりません。

于 2012-02-21T21:23:31.873 に答える