按下后退按钮上的MainActivity登录活动

时间:2019-01-24 17:25:41

标签: java android android-activity

我对“活动”有疑问。我的MainActivity是第一个活动。成功登录后,我想回到MainActivity。如果登录失败,则用户停留在LoginActivity上。 MainActivity 如下:

public class MainActivity extends AppCompatActivity {

Intent activityIntent;

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    activityIntent = new Intent(this, LoginActivity.class);
    startActivity(activityIntent);

    setContentView(R.layout.main_activity);
}

AndroidManifest.xml

<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="com.example.admin.keystroke_dynamics">
<uses-permission android:name="android.permission.INTERNET" />
<application
    android:allowBackup="true"
    android:icon="@mipmap/ic_launcher"
    android:label="@string/app_name"
    android:roundIcon="@mipmap/ic_launcher_round"
    android:supportsRtl="true"
    android:theme="@style/AppTheme">
    <activity android:name=".Activities.MainActivity">
        <intent-filter>
            <action android:name="android.intent.action.MAIN" />

            <category android:name="android.intent.category.LAUNCHER" />
        </intent-filter>
    </activity>
    <activity android:name=".Activities.LoginActivity" android:theme="@style/AppTheme.Dark" />
    <activity android:name=".Activities.SignupActivity" android:theme="@style/AppTheme.Dark" />
</application>

当登录凭据正确时,我通过方法LoginActivity关闭 finish(); 。当用户将错误的数据传递到EditTextes时,用户将停留在登录页面中。

我的问题是,当用户不登录时,如何关闭应用程序以按Back按钮的选项卡?现在,当用户未登录时,在后退按钮上按i即可返回MainActivity。如果没有人登录,我想关闭应用程序使其在后台运行。

2 个答案:

答案 0 :(得分:1)

您可以使用startActivityForResult()机制通过requestCode启动LoginActivity。

startActivityForResult(new Intent(this, LoginActivity.class), <Request-Code>);

然后,如果用户在完成活动之前成功登录,则需要在LoginActivity中调用setResult()。

setResult(Activity.RESULT_OK); finish();

要使用此结果,您需要在MainActivity中覆盖onActivityResult()-

    public void onActivityResult(int requestCode, int resultCode, Intent data){
         // check if the request code is same with which you requested LoginActivity
         if(requestCode == <Request-Code>){
               if(resultCode != Activity.RESULT_OK) {
                   // now finish your activity
                   finish();
               }
         }
    }

答案 1 :(得分:0)

尝试这样的事情。

if{
    //CODE FOR SUCCESSFULLY LOGIN
 }else{
     Intent intent=new Intent(this,MainActivity.class);
     startActivity(intent);
}