Показывать диалоговое окно с предупреждением только после заставки - PullRequest
0 голосов
/ 13 сентября 2018

Я хочу показать Alert Dialog после заставки, когда пользователь впервые открывает приложение. Я реализовал Заставку , используя эту ссылку . Руководство, как это сделать?

Style

<style name="AppTheme" parent="Theme.AppCompat.Light.DarkActionBar">
    <item name="colorPrimary">@color/colorPrimary</item>
    <item name="colorPrimaryDark">@color/colorPrimaryDark</item>
    <item name="colorAccent">@color/colorAccent</item>
</style>
<style name="SplashTheme" parent="Theme.AppCompat.NoActionBar">
    <item name="android:windowBackground">@drawable/background</item>
</style>

background.xml

<layer-list xmlns:android="http://schemas.android.com/apk/res/android">
<item android:drawable="@color/colorPrimaryDark" />
<item>
    <bitmap
        android:gravity="center"
        android:src="@drawable/splash" />
</item>

SplashActivity.class

public class SplashActivity extends AppCompatActivity {
@Override
protected void onCreate(@Nullable Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    Intent intent = new Intent(this, MainActivity.class);
    startActivity(intent);
    finish();
}
}

Ответы [ 2 ]

0 голосов
/ 13 сентября 2018

В своей SplashActivity вы можете проверить, является ли пользователь первым, кто опровергает ваше приложение.

Вы можете создать sharedPreference для сохранения, когда пользователь впервые открыл ваше приложение.

Надеюсь, ты понимаешь. :)

0 голосов
/ 13 сентября 2018

Вам необходимо сохранить значение инициализации на постоянной основе, например в базе данных или, проще, в SharedPreferences. Проверьте это значение при запуске. Как:

SharedPreferences sharedPref = getPreferences(Context.MODE_PRIVATE);
boolean isInitialized = sharedPref.getBoolean("INIT_STATE", false);

if (!isInitialized) {
    AlertDialog.Builder builder = new AlertDialog.Builder(this);
    builder.setTitle("Prompt message")
            .setMessage("Your message")
            .setPositiveButton(android.R.string.yes, new DialogInterface.OnClickListener() {
                public void onClick(DialogInterface dialog, int which) {
                    SharedPreferences.Editor editor = sharedPref.edit();
                    editor.putBoolean("INIT_STATE", true);
                    editor.apply();

                    Intent intent = new Intent(this, MainActivity.class);
                    startActivity(intent);
                    finish();
                }
            })
            .setNegativeButton(android.R.string.no, new DialogInterface.OnClickListener() {
                public void onClick(DialogInterface dialog, int which) {
                    // do nothing
                }
            })
            .setIcon(android.R.drawable.ic_dialog_alert)
            .show();
} else {
    Intent intent = new Intent(this, MainActivity.class);
    startActivity(intent);
    finish();
}

Конечно, этот код является руководством, вы должны добавить проверку ошибок и избегать дублирования кода, где это возможно, и т. Д.

...