APP起動時の白黒画面のソリューション

2218 ワード

白黒スクリーンの理由
Activityを開くと、このActivityが属するアプリケーションがまだ実行されていない場合、システムはこのActivityが属するアプリケーションのためにプロセスを作成しますが、プロセスの作成と初期化には時間がかかります.この動作が完了する前にシステムは何をしますか?何の反応もなければ、プログラムの初期化時間が長い場合、ユーザーは対応する位置に点をつけていないと思っているかもしれません.しかし、この時点で起動したプログラムはまだ初期化されておらず、プログラムを表示することも、元の場所に止まって何もしないこともできません.どうすればいいですか?これにはStarting Windowという概念があり、Preview Windowとも呼ばれる.
Starting Windowは、アプリケーションプロセスの作成と初期化に成功する前に表示される一時的なウィンドウです.Window TypeはTYPEです.APPLICATION_STARTING.プログラムの初期化が完了する前に、このウィンドウが表示され、このアプリケーションを開くことをユーザシステムに知らせ、応答し、プログラムの初期化が完了するとユーザUIが表示され、このウィンドウが削除される.
白または黒の表示は、ActivityまたはApplicationを起動して決定します.ライトテーマを使用している場合は、白い画面が表示される可能性があります.Blackトピックを使用している場合は、黒い画面が表示される可能性があります.ライトまたはBlackトピックを設定すると、Starting WindowにはActivityのandroid:windowBackgroundプロパティが表示されるので、白または黒の画面が表示されます.
シナリオ1
AppThemeを変更デフォルトのAppThemeを適用する場合、システムの「プレビュー解除(空白フォーム)」をtrueに設定するか、空白フォームを透明に設定します.



この2つの操作はいずれもThemeの背景を透明に変更したものであり,ユーザは白黒スクリーンの存在を視覚的に見ることができない.
シナリオ2
1.カスタムがAppThemeから継承するトピック2.Activityを起動するthemeをカスタムトピック3に設定します.Activityを起動するonCreateメソッドでsuper.onCreateメソッドとsetContentViewメソッドの前にsetThemeメソッドを呼び出し、トピックをカスタムAppThemeに設定します.




	
		
		
	


protected void onCreate(Bundle savedInstanceState) {
setTheme(R.style.AppTheme);
super.onCreate(savedInstanceState);