我对“活动”有疑问。我的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。如果没有人登录,我想关闭应用程序使其在后台运行。
答案 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);
}