Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/227.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
当应用程序第二次启动时,更改启动程序的活动将从android开始_Android_Android Activity_Launcher - Fatal编程技术网

当应用程序第二次启动时,更改启动程序的活动将从android开始

当应用程序第二次启动时,更改启动程序的活动将从android开始,android,android-activity,launcher,Android,Android Activity,Launcher,我正在开发一个android应用程序,其中我有一个启动器活动,可以获取用户的电子邮件id。当用户输入他的电子邮件id时,他将被重定向到另一个活动,该活动在网络视图中请求另一个用户身份验证。在此活动中成功验证用户后,将开始进一步执行 现在,我希望在用户在第二个活动中通过身份验证并关闭应用程序之后。下次当他启动应用程序时,他不应该看到启动程序的活动,并被重定向到第二个活动 有没有办法做到这一点? 谢谢 我的代码:- Animation animTranslate = AnimationUtils.

我正在开发一个android应用程序,其中我有一个启动器活动,可以获取用户的电子邮件id。当用户输入他的电子邮件id时,他将被重定向到另一个活动,该活动在
网络视图中请求另一个用户身份验证。在此活动中成功验证用户后,将开始进一步执行

现在,我希望在用户在第二个活动中通过身份验证并关闭应用程序之后。下次当他启动应用程序时,他不应该看到启动程序的活动,并被重定向到第二个活动

有没有办法做到这一点? 谢谢

我的代码:-

Animation animTranslate  = AnimationUtils.loadAnimation(Login.this, R.anim.translate);
    animTranslate.setAnimationListener(new AnimationListener() 
    {

        @Override
        public void onAnimationStart(Animation arg0) { }

        @Override
        public void onAnimationRepeat(Animation arg0) { }

        @Override
        public void onAnimationEnd(Animation arg0) 
        {

                if(LoadUserEmail()==null)
                {
                    LoginBox.setVisibility(View.VISIBLE);
                    Animation animFade  = AnimationUtils.loadAnimation(Login.this, R.anim.fade);
                    LoginBox.startAnimation(animFade);
                }
                else
                {
                    Intent myIntent = new Intent(Login.this, Details1.class);
                    startActivity(myIntent);
                }
            }

    });
public void onClick(View v) 
            {
                // TODO Auto-generated method stub
                  // username, deviceId, deviceName parameters
                    boolean didItWork =true;

                    username = editUser.getText().toString().trim();

                    if(username.length()==0)
                    {

                        Toast.makeText(getApplicationContext(), "Please enter a valid email address", Toast.LENGTH_LONG).show();
                        didItWork = false;
                    }


                    else
                    {
                    isUserSaved = true;
                    didItWork = true;
                    SaveUsersEmail(username);
                    checkUsername = LoadUserEmail();
}

 public void SaveUsersEmail(String username)
     {
         PreferenceManager.getDefaultSharedPreferences(this).edit().putString("Username",
                  username).commit();  


     }



public  String LoadUserEmail()
     {
         String username = PreferenceManager.getDefaultSharedPreferences(this).getString("Username",
                 "Please login"); 
         return username;
     }

您必须将身份验证令牌保存在
SharedReferences
中,并在下次使用它。如果您没有使用身份验证令牌,则可以将凭据保存在
共享引用中,并在下次使用它们

编辑

您必须在launcher活动中进行检查。类似于(伪代码):


谢谢你的回复。我已经在第二个活动中这样做了,用户在网页中输入他的凭据。launcher活动只有一个采用电子邮件id的
EditText
字段。下次启动应用程序时,它会再次显示launcher活动。我基本上需要在第二次发射之后改变发射装置的活动。你能给我提供一份工作吗example@user3354605是的,您必须更改启动器的代码。请参阅我答案中的编辑。@user3354605它对您有用吗?你的问题解决了吗?没有,我还在努力。如果我尝试保存用户名并再次启动该应用程序,则crashes@user3354605如果需要更多帮助,可以发布代码。
Read values from SharedPreferences
if(values != null)
  go to some activity you want
else
  go to second activity (i.e. login activity)