0

アプリケーションにスプラッシュ画面があります。ユーザーがホーム画面にいて、戻るボタンを押したとき。「終了しますか?」という警告ダイアログが表示されます。が表示され、ユーザーが[OK]を選択すると、moveTaskToBack(true);が呼び出され、アプリが終了します。ただし、アプリケーションをすぐに起動しても、スプラッシュ画面は表示されません。アプリケーションを起動するたびにスプラッシュ画面を表示するにはどうすればよいですか?

4

4 に答える 4

4

スプラッシュ画面の作成方法に関するいくつかの指針。

私たちが持っていると言うSplashActivityHomeActivity

SplashActivityランチャーアクティビティ(マニフェスト内)である必要があります。

<intent-filter>
      <action android:name="android.intent.action.MAIN" />

      <category android:name="android.intent.category.LAUNCHER" />
</intent-filter>

開始するときは、戻るボタンをクリックしても元に戻らないように呼び出すHomeActivity必要があります。finish()SplashActivity

HomeActivity戻るボタンをインターセプトしてダイアログを表示する場合、アプリケーションをバックグラウンドに移動するだけで終了しないため、[OK]を呼び出さないでmoveTaskToBack(true);ください。

finish()代わりに電話する必要があります。そして、すでにfinish onを呼び出しているので、SplashActivity残っているアクティビティは、だけHomeActivityなので、アプリケーションは閉じます。

于 2012-09-19T14:44:34.317 に答える
4

理想的には、そうするべきではありません。アプリの動作に対するユーザーの期待を尊重する必要があります。彼がアプリをクリックすると、アプリは離れた場所から開始する必要があります。メモリの制約のためにアプリが強制終了された場合、アプリは新たに起動します。

それでもやりたい場合:出典:アプリケーションを閉じてAndroidでホーム画面を起動する

Intent intent = new Intent(this, FinActivity.class);
intent.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
startActivity(intent);
finish();

FinActivityの内部:onCreateでfinish()を呼び出します。

于 2012-09-19T15:06:41.760 に答える
1

SplashScreenは、アプリの起動時にのみ表示されると思います。
したがって、Acitivitesが終了していないが一時停止しただけの場合、アプリが実際に閉じられていないため、SplashScreenは表示されません。

戻るボタンが押されたときにアプリケーションを終了するか(コード:)、アプリがバックグラウンドにあるthis.finish()かどうかをすべてのアクティビティのメソッドで確認しonResume()、trueの場合はスプラッシュスクリーンを表示することができます。

于 2012-09-19T14:37:06.927 に答える
0

スプラッシュ画面が必要になる唯一の理由は、アプリケーションの起動と、その間にスレッドを介して情報をロードしたい場合だけだと思いますが、それは私の意見です。

とにかく、マニフェストの最初のアクティビティとしてスプラッシュスクリーンを起動し、次に次のアクティビティを開始するインテントを起動した後(実際のメイン)にする必要があります。数ヶ月前に私が最初にこれらを扱ったときに使用した素晴らしいチュートリアルがあります。それはあなたと一緒にSTEPbySTEPを通過します。これがお役に立てば幸いです:)

チュートリアルI チュートリアルII

于 2012-09-19T14:46:42.143 に答える