【问题标题】:finish activity in android closing application在android关闭应用程序中完成活动
【发布时间】:2015-04-06 07:38:26
【问题描述】:

我想在单击注册按钮上注册,然后在新用户注册后返回登录屏幕。为此我正在使用

@Override
    public void onClick(View v) {
    username = eusername.getText().toString();
    email = eemail.getText().toString();
    mobile = emobile.getText().toString();
    password = epassword.getText().toString();
    registerViews();
    if(Validations.hasNoChars(username) && Validations.isEmail(email) && Validations.isMobileNumber(mobile) && Validations.isNotEmpty(password)) 
    {            
        new CreateUser().execute();
        Toast.makeText(RegisterActivity.this, "User Registered", Toast.LENGTH_LONG).show();
        //RegisterActivity.this.finish();

    }        

   else{
       Toast.makeText(RegisterActivity.this, "Fields are empty", Toast.LENGTH_LONG).show();
   }
  finish();
}   

由此切换到登录屏幕,但应用程序关闭。我不知道我做错了什么。

【问题讨论】:

  • 去掉finish();并尝试
  • 请贴出您登录页面的代码。
  • 添加进入登录屏幕的意图。
  • 只是简单的替换finish();与 onBackPressed();然后检查....

标签: android android-activity activity-finish


【解决方案1】:
    if(Validations.hasNoChars(username) && Validations.isEmail(email) && Validations.isMobileNumber(mobile) && Validations.isNotEmpty(password)) 
    {            
        new CreateUser().execute();
        Toast.makeText(RegisterActivity.this, "User Registered", Toast.LENGTH_LONG).show();
       Intent it=new Intent(this,login.class);
startActivity(it);

    } 

尝试这样做是您的异步​​执行成功,它会将您转移到登录活动。

【讨论】:

  • 这不是一个合适的解决方案,因为如果您单击设备后退按钮,您的应用程序再次返回注册活动,则使用此代码会创建新活动。所以使用 onBackPressed();
【解决方案2】:

把完成();在 onPostExecute() 的 AsyncTask CreateUser() 中

【讨论】:

    【解决方案3】:

    无需再次启动登录活动。开始注册活动时,您必须完成登录活动。开始注册活动时不要使用 finish() 方法。

    【讨论】:

      猜你喜欢
      • 2013-12-11
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-12-20
      • 2012-06-20
      • 1970-01-01
      • 2012-11-23
      相关资源
      最近更新 更多