Android Studio: запрос разрешений с пояснениями

Хорошим тоном считается при запуске приложения если нужны какие-то разрешения, предварительно рассказывать, зачем они собственно приложению нужны. Реализовать это можно например вот так:


        if (ContextCompat.checkSelfPermission(mycontext, android.Manifest.permission.ACCESS_FINE_LOCATION) != PackageManager.PERMISSION_GRANTED){
            AlertDialog.Builder builder = new AlertDialog.Builder(MainActivity.this);
            builder.setTitle("Местоположение");
            builder.setMessage("Для того чтобы приложение правильно рассчитывало расстояние до ЭЗС вам нужно предоставить доступ к геолокации. Разрешить доступ?").setCancelable(true).setPositiveButton("Да, разрешить",
                    new DialogInterface.OnClickListener() {
                        @Override
                        public void onClick(DialogInterface dialog, int id) {
                            checkPermission(Manifest.permission.ACCESS_FINE_LOCATION, 100);
                            checkPermission(Manifest.permission.ACCESS_COARSE_LOCATION, 101);
                            checkPermission(Manifest.permission.ACCESS_LOCATION_EXTRA_COMMANDS, 102);
                            StartInterface();
                        }
                    })
                    .setNegativeButton("Нет,запретить",
                            new DialogInterface.OnClickListener() {
                                @Override
                                public void onClick(DialogInterface dialog, int id) {
                                    StartInterface();
                                }
                            });
            AlertDialog alert = builder.create();
            alert.show();
        } else {
            StartInterface();
        };

Android Studio: белый экран на пару секунд при «холодном старте» приложения

Проблема: при холодном старте приложения, возникает «белый экран». Не очень красиво выглядит. Чаще всего это возникает когда в стартующеё активити, в onCreate очень много всего положено. И не всегда можно от туда это всё вынять.

Решение: в основной стиль приложения добавим строчку, которая фоном установит картинку вместо «белого экрана»:

        <item name="android:windowBackground">@drawable/welcome_android</item>
<item name="android:windowFullscreen">true</item>