1

私のゲームはバックグラウンドからロードするのに長い時間がかかります。読み込み中、画面は真っ黒になります(約5〜7秒間なので、ユーザーはクラッシュすると思うかもしれません)。

フォアグラウンドに入るときにトーストを表示することにしました。

    protected void onResume() {

        System.out.println("onResume method called");
        Context context = getBaseContext();
//      Context context = getApplicationContext();
        CharSequence text = "i appreciate your patience";

        Toast toast = Toast.makeText(context, text, Toast.LENGTH_LONG);

        toast.show();


        super.onResume();
        wl.acquire();
        if (accelerometerEnabled) {
            accelerometer.enable();
        }
    }

しかし、トーストは再開が終了した後にのみ表示されます(これにより役に立たなくなります)。getApplicationContext、getBaseContext、およびアクティビティ自体を試しました。それで、私のアプリのコンテキストなしでウィンドウに直接トーストを追加することは可能ですか?(おそらくシステムレベルのコンテキストで)

4

2 に答える 2

2

これは、バックグラウンドから戻ってきたときのUIスレッドでのゲームの読み込みに関連していると思います

UIスレッドに依存しないすべてのロジックをAsyncTaskに移動してみてください。

これにより、ゲームの読み込み中にトーストメッセージが表示されるようになります。

于 2012-06-25T01:49:23.733 に答える
1

ここで、スプラッシュ スクリーンが役立ちます。すべての UI をカバーするスプラッシュ スクリーンを xml に配置し、asynctask でロード プロセスを開始するだけです。asynctask の onPostExecute で、スプラッシュ レイアウトの可視性を Gone に設定します。

向きの変更を処理することを忘れないでください。

于 2012-06-25T02:25:46.563 に答える