Отображение экрана настройки только при первом запуске в Android - PullRequest
3 голосов
/ 02 января 2012

Я делаю приложение для Android, но не могу понять, как сделать так, чтобы экран настройки отображался только в первый раз. Вот как приложение будет работать: Пользователь запускает приложение после установки и отображается экран приветствия / настройки. И как только пользователь завершит настройку, экраны настройки больше не появятся, если пользователь не переустановит приложение.

Как я могу это сделать ??? Пожалуйста, помогите и большое спасибо заранее!

Ответы [ 2 ]

13 голосов
/ 02 января 2012

Используйте SharedPreferences, чтобы проверить, является ли это первым запуском или нет.

Примечание: приведенный ниже код не проверялся.при первом запуске или нет), добавьте

// here goes standard code 

SharedPreferences pref = getSharedPreferences("mypref", MODE_PRIVATE);

if(pref.getBoolean("firststart", true)){
   // update sharedpreference - another start wont be the first
   SharedPreferences.Editor editor = pref.edit();
   editor.putBoolean("firststart", false);
   editor.commit(); // apply changes

   // first start, show your dialog | first-run code goes here
}

// here goes standard code
0 голосов
/ 21 ноября 2015

Сделай одно вспомогательное занятие. Это будет ваша активность запуска. Он не будет содержать никаких макетов, он просто проверит первый запуск приложения. Если сначала он запустится, то начнется процесс настройки, в противном случае будет запущен MainActivity.

public class HelperActivity extends Activity {

    SharedPreferences prefs = null;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        // Perhaps set content view here

        prefs = getSharedPreferences("com.mycompany.myAppName", MODE_PRIVATE);
    }

    @Override
    protected void onResume() {
        super.onResume();

        if (prefs.getBoolean("firstrun", true)) {
            // Do first run stuff here then set 'firstrun' as false
            //strat  DataActivity beacuase its your app first run
            // using the following line to edit/commit prefs
            prefs.edit().putBoolean("firstrun", false).commit();
            startActivity(new Intent(HelperActivity.ths , SetupActivity.class));
            finish();
        }
        else {
        startActivity(new Intent(HelperActivity.ths , MainActivity.class));
        finish();
        }
    }
}
...