登录我的应用程序时打开两个窗口

时间:2016-06-08 20:04:27

标签: android android-intent

当我打开我的应用程序并按下手机的按钮以查看所有已打开的应用程序时,我看到LoginActivity和另一个窗口,即在登录屏幕之后启动的HomeActivity。我不知道我是否在这里清楚,我可能没有正确的词来描述它。如果不清楚,请不要犹豫,详细询问...

我不明白为什么它现在出现了,我一段时间没有修改我开展活动的方式......

在LoginActivity代码中:

private void startHomeActivity() {

    if (dialog != null && dialog.isVisible())
        dialog.dismiss();

    final Intent intent = new Intent(ActivityLogin.this, ActivityHome.class);
    intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK | Intent.FLAG_ACTIVITY_CLEAR_TASK);
    // Smooth transition.
    new Handler().postDelayed(new Runnable() {
        public void run() {
            startActivity(intent);
        }
    }, 500);

    overridePendingTransition(R.anim.pull_in_right, R.anim.push_out_left);
}

在清单中:

    <activity
        android:name=".activityv2.ActivityLogin"
        android:label="@string/app_name"
        android:screenOrientation="portrait"
        android:windowSoftInputMode="adjustResize"></activity>
    <activity
        android:name=".activityv2.ActivityHome"
        android:label="Security Agent"
        android:launchMode="singleInstance"
        android:screenOrientation="portrait">
        <intent-filter>
            <action android:name="android.nfc.action.TECH_DISCOVERED" />
            <action android:name="android.nfc.action.TAG_DISCOVERED" />
        </intent-filter>

        <meta-data
            android:name="android.nfc.action.TECH_DISCOVERED"
            android:resource="@xml/nfc_tag_filter" />
    </activity>

1 个答案:

答案 0 :(得分:1)

理想情况下,如果用户成功登录,您应该关闭LoginActivity - 这样,只会显示HomeActivity

所以也许可以在开始新finish()

之后立即拨打Activity
new Handler().postDelayed(new Runnable() {
        public void run() {
            startActivity(intent);
           //kill current activity (LoginActivity?)
            finish();
        }
    }, 500);

我希望这会有所帮助。