2012-02-06 4 views
6

私はログイン詳細についてSharedPreferencesをチェックするLoginActivityを持っており、その後、HomeActivityおよびそれ以降の他のアクティビティにリダイレクトします。私はこのアクティビティのそれぞれにメニュー項目サインアウトを入れ、サインアウトボタンでこのコードを使用しました。ログインアクティビティを非表示

intent.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP); 

ログインアクティビティを非表示にする方法。ユーザーがホーム画面から戻るボタンを押すと、アプリケーションが終了します。

私はアプリを開いたときと同じようにホーム画面を表示し、通常は戻るボタンを押すとアプリを終了するはずです。しかし私の場合は、ユーザーの資格情報をチェックする最初の画面であるログイン画面が表示されます。

私はログインアクティビティを終了できません。それ以外の場合、解決策は機能しません。

こちらはAndroidが初めてです。この問題を解決するために何か提案してください。

+3

ログインアクティビティのmenifestでandroid:noHistory = "true"を使用します。 –

+0

私はそれを試みましたが、スタックからアクティビティを削除します。 – SkyWalker

答えて

5

あなたの家の活動のバックキー機能でこれを試してみてください:

onBackpress(){ 
Intent intent = new Intent(mContext, LoginActivity.class); 
intent.putExtra("FLAG", 0); 
intent.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP); 
intent.addFlags(Intent.FLAG_ACTIVITY_SINGLE_TOP); 
startActivity(intent); 
} 

とあなたのLoginActivity上だけで実行します。

onNewIntent(Intent intent){ 
    int i = intent.getIntExtra("FLAG", 0); 

    if(i == 0) 
     finish(); 

} 

はmenifestでの活動のためにlaunchModeを覚えsingleTopでなければなりません。

+0

putIntExtraの "IntIntent型のメソッドputIntExtra(String、int)が未定義です"というエラーが表示されます。 getDataのgetDataは解決できないか、フィールドではありません。 – SkyWalker

+1

私は自分の答えを編集しました –

+0

ありがとう!完璧に動作します。私たちがしたことを簡単に説明できますか? – SkyWalker

4

Activity.onBackPressed()メソッドをオーバーライドし、アプリケーションをインテント経由で送信します。 SDKから

:以下のカテゴリと

意図は、あなたが家に帰ることができます。

カテゴリCATEGORY_HOMEのACTION_MAIN - ホーム画面を起動します。

+0

IホームアクティビティでonBackPressedをオーバーライドします。しかし、私はアプリを閉じるためにfuctionの中に書いたコードです。 – SkyWalker

+0

あなたはあなたのアプリを殺してはいけません、ActivityManagerはあなたのために、インテントの家を送るだけです。 – JoxTraex

+0

私のアプリは最初にユーザ名とパスワードを要求し、その後はホームページを直接開きます。しかし、私は戻るボタンを押すと、ログイン活動にかかります。だから私は家の活動から戻るボタンで、私はアプリを強制終了したい(強制的にアプリを殺す)。 – SkyWalker

1

バックボタンのキー押しイベントを無効にして、アプリケーションを閉じることができます。

関連する問題