2

アプリの起動時にスプラッシュ画面のアクティビティがあります。起動スプラッシュ画面にはfinish()があるため、ユーザーが最後の残りのアクティビティから戻るを押しても、起動スプラッシュ画面は表示されなくなります。ただし、アプリを直接終了する代わりに、起動スプラッシュ画面とは異なる画像を持つ終了スプラッシュ画面をアプリに表示させます。その後、アプリは直接終了します。

だから私はそれを次のようにしたいと思います:スプラッシュ画面1(開始)->アクティビティA->アクティビティB->(押し戻す)->アクティビティAを表示->(もう一度押す)->スプラッシュ画面2(終了)

どうやってするか?

アクティビティAの戻るボタンを上書きする必要がありますか、それともユーザーがアクティビティAの戻るボタンを押したときに新しいアクティビティを表示する別の方法がありますか?

4

5 に答える 5

5

アクティビティAの戻るボタンをスプラッシュ2の開始アクティビティコードで上書きしてみませんか?これが唯一の解決策だと思います。

例えば:

@Override
public void onBackPressed() {
   Intent setIntent = new Intent(ActivityA.this, Splash2.class);
   startActivity(setIntent);
   finish();
}
于 2012-04-16T10:34:52.730 に答える
1

ユーザーをいつ終了させるかによって異なります。アクティビティAのみの場合は、そのアクティビティでonKeyDownをオーバーライドできます。それ以外の場合は、取得した各アクティビティでオーバーライドできます。

@Override
public boolean onKeyDown(int keyCode, KeyEvent event) {
    if ((keyCode == KeyEvent.KEYCODE_BACK)) {
        startActivity(new Intent("com.android.splashscreen"));
        finish();
    }
}

エンドスプラッシュ画面を作成して開始します。

于 2012-04-16T10:43:12.830 に答える
1

startActivityを追加して、finish()メソッドをオーバーライドするだけです。

于 2012-04-16T10:33:23.963 に答える
1

単純な

  1. finishを呼び出さずにstartActivityForResultメソッドを使用してスプラッシュからアクティビティAを呼び出す

  2. スプラッシュのonActivityResultをオーバーライドして、スプラッシュ終了画面を表示します

于 2012-04-16T10:38:19.323 に答える
0

アクティビティAの乗り越え方法onBackPressed()。この中で、スプラッシュ画面2/ENDアクティビティを開始できます。

于 2012-04-16T10:37:20.987 に答える