私のアプリでは、onCreateですべてを設定してから、すべてのリソースの読み込みなどを設定する非同期タスクを開始します。非同期タスクが開始された直後に、スプラッシュ スクリーンをレイアウトに追加します。すべてが読み込まれると、スプラッシュスクリーンが閉じられ、Open GL レンダラーが下に表示されます。
私がやろうとしているのは、ダイアログ画面 (基本的には、ビットマップを表示する別のViewクラス) を追加することです。また、ユーザーがダイアログ画面内で画面をタップするまで、スプラッシュのようなものは発生させたくありません。
これは次のようになります (注、これは私の実際の onCreate からの抜粋ですが、問題を説明するには十分なはずです)
public void onCreate(Bundle savedInstanceState){
SplashScreen splash = new SplashScreen (getApplication(), width, height);
ConsentDialog consentDialog = new ConsentDialog(getApplication(), width, height);
//Add the consent dialog
layout.addView(consentDialog);
setContentView(layout);
super.onCreate(savedInstanceState);
//Splashscreen
backgroundResources = new MyAsync(newBundle);
backgroundResources.execute();
layout.addView(splash);
}
ただし、上記を実行すると、スプラッシュ画面が表示され、すべてが読み込まれ、スプラッシュが閉じられ、ダイアログが残ります。
ユーザーが画面をタップするまで setContentView の直後に onCreate メソッドを一時停止 (または一時停止の効果を与えるもの) するにはどうすればよいですか? (注、consentDialog オブジェクトで onTouch(View v, MotionEvent event) メソッドを使用してタッチ イベントを待機しています。
基本的に、ユーザーが画面をタップするまで非同期は開始されません。これができない場合、私が望む効果をもたらす何かを達成するにはどうすればよいでしょうか?