Запускайте активность только один раз, затем всегда запускайте основной

Как гласит заголовок, Сценарий: При первом использовании приложения Показать Экран A. Как только вы закончите с экраном A, кнопка приведет вас к Экрану B. С этого момента и навсегда, Экран B всегда будет основным. Экран "(активность?) При запуске приложения. Я пытаюсь это 2 дня, и я не могу получить это. Кто-нибудь, пожалуйста, объясните немного подробнее, или даже лучше, скажите мне code.rar, чтобы я мог исследовать его. Я схожу с ума от этого!!!

4 ответа

Решение

Просто объявите вашу активность A как активную программу запуска в вашем AndroidManifest.xml и внутри вашей активности A onCreate() вы можете просто сделать это

private SharedPreferences mSharedPreferences;
private Editor mEditor;

@Override
public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_a);

    mSharedPreferences = getSharedPreferences("yourPrefsFileName", Context.MODE_PRIVATE));
    mEditor = mSharedPreferences.edit();

    if (mSharedPreferences.getBoolean("isfirstTime", true)) {
        mEditor.putBoolean("isFirstTime",false);
        mEditor.apply();
    }else{
         startActivity(new Intent(this, ActivityB.class));
         overridePendingTransition(0, 0);
         finish();
      }
}
SharedPreferences sp = getSharedPreferences("checking",MODE_PRIVATE);

String data = sp.getString("check", "");

if (data.equals("success")) {

//one time proccess code

//with follow code

SharedPreferences sp= getSharedPreferences("checking",MODE_PRIVATE);

Editor e1 = sp.edit();

e1.putString("check","success");

e1.commit();


} else {

// code for main

 Intent intent = new Intent(this, MainActivty.class);
 startActivity(intent);

}
public class FirstActivity extends Activity {

   public void onCreate(Bundle saved){
      super.onCreate();

      SharedPreferences prefs = getSharedPreferences("MyPrefs", Context.MODE_PRIVATE);

     if (!prefs.getBoolean("firstStart", true)){
          startActivity(this, SecondActivity.class);
          finish(); // Finish the current one, is like forwarding directly to the second one
      }

   }
}

Всякий раз, когда вы закончите показ первого действия, просто установите логический флаг shared prefs в false:

prefs.getEditor.setBoolean("firstStart", false).commit();

Все, что вы должны проверить, как это

 SharedPreferences prefs = getSharedPreferences("mySHaredpref", Context.MODE_PRIVATE);
    SharedPreferences.Editor editor = prefs.edit();
    boolean isFirst = prefs.getBoolean("isfirstTime", true);
    if(isFirst) {
        Intent intent = new Intent(this, ActivtyA.class);
        editor.putBoolean(KEY_IS_FIRST_TIME, false);
        editor.commit();
        startActivity(intent);
    }
    else{
      Intent intent = new Intent(this, MainActivty.class);
      startActivity(intent);
    }
Другие вопросы по тегам