2011-09-08 10 views
0

基本的に、ActionBarにログアウトボタンを設けて、ユーザーがアプリケーションに戻ったときに最初に実行されるようにします時間。私はこの正確な振る舞いを呼び出しました:ログアウトボタンハンドラでは、このような正確な振る舞いを達成しました:しかし、私はこのようなあいまいなハッキングを避けています。ユーザーがボタンをタップしたときにアプリケーションを終了させる方法

私はここで説明したようにしようとしましたが、Killing android application on pauseの動作は期待されていません。ユーザーが戻ってくると、アプリケーションは既にログインしています。ユーザーがログオフするたびに、次回の実行時にアプリケーションが再ロードされるようにする必要があります。

私もこれを試しました:Android - How to start the exact same activity every time the app is opened up?。この動作は、一時停止中のfinish()と同じです。

「なぜあなたはそれが欲しいのですか?これはAndroidの仕組みではなく、あなたのプロセスを管理します」などのようにコメントに返信しないでください。ここで説明するように、私はライフサイクルを理解しています:http://developer.android.com/reference/android/app/Activity.html#ActivityLifecycle。私が欲しいのはいつものことではなく、私が働いているアプリにとって絶対に必要なことです。プロセスを殺すことが唯一の答えであるならば、それは不幸にも、私がやろうとしていることです。

答えて

2

Activity.finish()を呼び出してみましたか?

+1

theClassName.this.finish(); – Pyrodante

+0

はい。 Activity.finish()はアプリケーションを "閉じ"ません。実際、バックボタンを押すのと同じことです。 Android OSがプロセスを処理しますが、これは私が望むものではありません。私はアプリケーションを破壊したいのです。 –

+0

アプリを閉じる前に何かしたい場合は、onBackPressedでいつでも行うことができます。おかげで、System.exitはandroid.os.Process.killProcess(android.os.Process.myPid())の近くにあります。 –

0

ので.......私たちは、以前の活動が正面に来るつの活性を終えたときにOSだからスタックを維持する....アンドロイドで

System.exit(0); 
+0

ハッキングの点でこのアプリは、ユーザーがクラッシュしたと思うように閉じます。それは私が避けようとしているものです。 –

0

......これを試してみてくださいスタックを維持したくない場合は、マニフェストファイルのすべてのアクティビティに次の行を追加します。今、あなたは終了]ボタンに次のコードを使用して終了ボタンを使用してアプリケーションを終了しよう

**android:noHistory="true"** 

**activity_name.this.finish();** 

それが動作します。..

+0

助けてくれてありがとうが、これもうまくいきませんでした。私のアプリケーションが起動するたびに、それはログインサーバーに接続し、いくつかのデータを取得します。 アプリケーションタグの下にあなたが言ったことをマニフェストに入れましたが、同じことです:私が戻るボタンを押してからアプリケーションに戻ると、サーバからダウンロードされたすべてのデータがメインに表示されます画面は、私が望むものではありません。このデータは非公開です。したがって、ログアウトは、ログインしない限り誰もその情報を見ることができないことを意味します。 –

+0

あなたはあなたのアプリケーションのすべてのアクティビティタグに上記のタグを入れなければなりません。アプリケーションタグではありません –

+0

さて、私は結果をテストして掲載します、K-ran。しかし、私には1つのアクティビティしかありません。 –

関連する問題