2011-06-21 2 views
0

アプリケーションのアクティビティからログアウトボタンを押すことができるという要件があります。ログアウトボタンを押すと、前のアクティビティを表示せずにlogin画面を表示する必要があります。私が使用しています:アンドロイドのアクティビティスタックをクリアするには?

intent.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP) 

を私はこのような活動を始めています:私はlogoutボタンを押したときに、私はlogin画面に取得

public void onClick(View v) { 
    try 
    { 
     Intent intent = new Intent(getContext(), Login.class); 
     v.getRootView().getContext().startActivity(intent); 
     intent.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP); 
     removeSessionFiles(); 
     //startActivity (new Intent(getApplicationContext(), Activity1.class)); 
    } 
    catch (Exception e) 
    { 
    String str = e.toString(); 
    } 
} 

が、私は、デバイス上のbackボタンを押すと、それはあります以前の活動を示しています - 私はlogin画面で戻るボタンを押すと、Androidのホーム画面に行く必要があります。このための解決策をお聞かせください。

+0

上記のフラグを設定すると作業が行われるため、... – Dinash

+0

startActivityを使用してログインアクティビティを読み込んで現在のアクティビティを終了させるのはなぜですか? –

+0

私はそれをチェックすることができます – amj

答えて

1

を助け

希望...これはあなたの問題を解決するウィル...ちょうどstartactivityラインの前にフラグ設定ラインを置くべきです活動前のセットは、活動を開始した後にフラグを設定する点が....コードは次のようになりますいただきました...開始され

Intent intent = new Intent(getContext(), Login.class); 
intent.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP); 
     v.getRootView().getContext().startActivity(intent); 

     removeSessionFiles(); 
0

HO男はただdinashが旗の上に言ったように、これは...

+0

はい、それは私のprobを解決しましたが、別のものがそこにあります。つまり、私は3-4のアクティビティを通過し、ログアウトボタンを押す代わりに、もう一度ログアウトボタンをもう一度押せば、ログイン画面が表示されます。これが問題です。 – amj

0
startActivityはあなたの問題を解決する呼び出す前

でsetFlags

public void onClick(View v) { 

try { 
Intent intent = new Intent(getContext(), Login.class); 
intent.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP); 
v.getRootView().getContext().startActivity(intent); 
removeSessionFiles(); 
} catch (Exception e) { 
String str = e.toString(); 
} 
} 
関連する問題