0

起動時とユーザーがログアウトした場合にのみ表示したいログインアクティビティがあります。そのため、ユーザーがログインアクティビティに参加していて、戻るボタンをクリックしたときに、ログインアクティビティに戻るのではなく、アプリを閉じたいと思います。

戻るボタンのコールバックを正常に上書きしました。

public override bool OnKeyDown(Keycode keyCode, KeyEvent e)
{
    if (keyCode == Keycode.Back)
    {
        Console.Out.WriteLine("Close activity");
        return true;
    }

    return base.OnKeyDown(keyCode, e);
}

これにより、戻るボタンが前のアクティビティに戻るのを停止します。ただし、Finish();以前を含めるreturn trueと、ログインアクティビティが再表示されます:(

これは私がログイン後に使用するコードです:

Intent activity = new Intent(this, typeof(WorkOrderActivity));
StartActivity(activity);

いくつかのIntentflagsとLaunchModesを試しましたが、動作させることができません。ログによると、ログイン後に開始されるアクティビティは1つだけです。

4

4 に答える 4

2

Activity前の後に表示するのは通常の動作ですfinish()

メソッドはfinish()、それを呼び出すアクティビティを閉じるだけです

ログイン フォームを非表示にして、onResume()ログイン アクティビティでユーザーのログイン ステータスを確認できます(ログインしている場合は終了します) 。

于 2013-02-25T14:56:43.300 に答える
2

これを試してみてください..

Intent mIntent = new Intent(this, WorkOrderActivity.class);
mIntent.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
startActivity(mIntent);

finish();
于 2013-02-25T14:56:08.433 に答える
0

ログイン アクティビティから別のアクティビティを開始するときは、スタックをクリアする必要があります。

Intent intent = new Intent(LoginActivity.this, HomeActivity.class);
intent.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP | Intent.FLAG_ACTIVITY_NEW_TASK |      Intent.FLAG_ACTIVITY_CLEAR_TASK);
startActivity(intent);

また、ユーザーがログアウトすると、LoginActivity を開始できます。

于 2013-02-25T14:52:25.487 に答える
0
public override bool OnKeyDown(Keycode keyCode, KeyEvent e)
{
    if (keyCode == Keycode.Back)
    {
        moveTaskToBack(true);
        return true;
    }

    return base.OnKeyDown(keyCode, e);
}
于 2013-02-25T14:55:25.303 に答える