仅运行一次活动,然后始终运行主活动

时间:2022-05-02 21:01:00

As the title says, Scenario is: On first time using the app, Show Screen A. Once you are done with screen A, the button will lead to you Screen B. From now on and forever, the Screen B will always be main "Screen"(Activity?) when you start the app. I am trying this 2 days and i can't get it. Somebody please explain a little detailed, or even better throw me a code.rar so i can research it. I'm going crazy with this!!!

正如标题所示,场景是:第一次使用应用程序时,显示屏幕A.完成屏幕A后,按钮将指向您的屏幕B.从现在开始,永远,屏幕B将永远是主要的“启动应用程序时屏幕“(活动?)。我正在尝试这2天,我无法得到它。有人请详细解释,甚至更好地给我一个code.rar所以我可以研究它。我疯了!

4 个解决方案

#1


0  

Just declare your Activity A as a launcher Activity in your AndroidManifest.xml and inside your Activity A onCreate() you can simply do this

只需将您的活动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();
      }
}

#2


0  

All you have to check like this

所有你必须这样检查

 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);
    }

#3


0  

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
      }

   }
}

Whenever you are done with showing the first activity simple set the shared prefs boolean flag to false:

每当您完成显示第一个活动时,将共享prefs boolean标志设置为false:

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

#4


0  

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);

}

#1


0  

Just declare your Activity A as a launcher Activity in your AndroidManifest.xml and inside your Activity A onCreate() you can simply do this

只需将您的活动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();
      }
}

#2


0  

All you have to check like this

所有你必须这样检查

 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);
    }

#3


0  

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
      }

   }
}

Whenever you are done with showing the first activity simple set the shared prefs boolean flag to false:

每当您完成显示第一个活动时,将共享prefs boolean标志设置为false:

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

#4


0  

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);

}