0

私には3つの活動があり、それらをAct1、Act2、Act3と呼びましょう。Act1にはログインフォームがあり、(ログインが成功すると)Act2に移動します。このフォームには2つのオプションがあります(1. Act3に移動、追加データを使用してAct3に移動)。次に、ユーザーはAct3に移動します。

もちろん、ユーザーがAndroidデバイスの「ホーム」ボタンを押すと、アプリケーションは最小化され、Androidがメモリを使用する必要があるまでメモリに保持されます(この場合、アプリは破棄されます)。ただし、ユーザーが「ホーム」ボタンを押してからアプリをすばやく開くと、アプリは最小化される前にフォアグラウンドにあったアクティビティに復元されます。

アプリを最小化できるようにしたいので、再度開いたら、Act1に直接移動して、ユーザーに再度ログインするように促します。アプリがAct2またはAct3で再開できるようにしたくありません。

4

2 に答える 2

1

アプリケーションが本当にセキュリティに敏感でない限り、デフォルトの動作はユーザーにとってより良いはずです。アプリを起動するたびにログインとパスワードを入力するのは非常に煩わしい場合があります。ネイティブGMailアプリケーションを例にとってみましょう。開くたびに再認証する必要はありません。

さて、アプリケーションが本当にその動作を必要とする場合(たとえば、クレジットカードセーフなど)、最初の推測は、Act3のonPause()を処理し、そこからfinish()を呼び出すことです。finish()を2回呼び出さないように注意してください(isFinishing()を参照)。

また、これはユーザーの期待を裏切るものであるため、迷惑をかけたくないという理由ではなく、セキュリティのためにアプリがそのように動作することをユーザーに明確に伝えてください。

于 2012-01-09T15:59:00.613 に答える
0

ユーザーがアクティビティから離れると(たとえば、ホームボタンを押す)、onPause()最初にメソッドが呼び出されます。そこでロジックを処理できるはずです(たとえば、finish()Act2またはAct3を呼び出す)。

編集:ええ、ええ、彼が言ったこと:D

于 2012-01-09T16:00:58.453 に答える