Запускайте активность только один раз, затем всегда запускайте основной
Как гласит заголовок, Сценарий: При первом использовании приложения Показать Экран 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);
}