0

私の最初のアクティビティをコールバックすると、onResumeを呼び出す必要があります.Androidバージョン2.2でも同じことを呼び出しています.しかし、Android 4.1をチェックインすると、スプラッシュスクリーンを呼び出すonCreateメソッドを呼び出しているため、アプリが再起動しているように見えますAndroidのすべてのバージョンでonResumeが呼び出されるようにしますか?

ありがとう

4

2 に答える 2

1

ヘンリーが言ったように、 onCreate が再び呼び出されないことを保証することはできません.あなたはそのライフサイクルを担当していません. アクティビティがフォアグラウンドにないときにシステムがアクティビティを削除することを決定した場合、アクティビティに戻ったときにアクティビティが再作成されます。スプラッシュ スクリーンを再度表示しないようにしたい場合は、状態を保存して、それが表示されたことを示す必要があります (たとえば、onSaveInstanceState を使用)。余談ですが、一般的に、スプラッシュ スクリーンは Android ではあまり良いアイデアではありません。アプリは、Android システムが基本的に行うように、多少ランダムに入力および再入力できるアクティビティの緩いコレクションとして表示することをお勧めします。Android で使用されているスプラッシュ スクリーンを見ると、わずかに動作がおかしいことがよくあります。

スプラッシュ画面が対応する可能性のあるアプリケーションのライフサイクルを追跡したい場合は、Application オブジェクトをサブクラス化し、そこにフラグを設定できます。ただし、Android ではアプリが何週間も実行されたままになる可能性があるため、ユーザーがそのスプラッシュ スクリーンを頻繁に見るとは限りません。

スプラッシュ スクリーンの真の目的は、長い読み込みプロセスが発生している間にユーザーに何か良いものを表示することであり、ブランディングを目立たせるためではないことに注意してください。onSaveInstanceState (および多くの場合 onRetainNonConfigurationInstance も) でアプローチを使用する場合、実際にスプラッシュ スクリーンを表示するケースは、その読み込みプロセスをやり直す必要がある場合であるため、正しいでしょう。ただし、一般的には、デザインを再考し、最小限の UI をすばやく表示してから、一部のデータが読み込まれていることを示す方が適切です。

最後に、このテーマについて深く掘り下げている人がいます: http://android.cyrilmottier.com/?p=632

于 2012-12-28T16:29:09.340 に答える
1

未使用のアクティビティがシステムによって削除された場合、onCreate通常の動作が行われます。

この問題を回避するために、スプラッシュ スクリーンを別のアクティビティの一部にすることができます。

于 2012-12-28T15:32:56.680 に答える