2016-07-14 26 views
1

私は自分のアプリケーションのバックエンドにデータベースツリー構造を持っています。 それは、基本的には次のようになります。Android:スタックからアクティビティを削除する

List 
    |- View 

私は、ビューを表示するリストビューを変換する機能を書きました。ここに示されている:

List 
    |- List 
    |- View 

toList()機能アプリケーションがデータベースに構造を再構築して、リストの内容を表示する新しいリストアクティビティに切り替える必要がありますをトリガします。

一つのことを除いて上記の作品のすべてを、:

新しいリストの活動に、以前のビューを切り替える「戻る」ボタンを押したときの順序を維持するために、スタックから削除する必要があります。

私は、次の目的で試してみました:

Intent i = new Intent(ViewActivity.this, ListActivity.class); 
// new_item is a DTO containing the needed id to create the List activity 
i.putExtra("selected_item", _new_item); 
i.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP); 
PostActivity.this.startActivity(i); 

など:予想通り

Intent i = new Intent(ViewActivity.this, ListActivity.class); 
// new_item is a DTO containing the needed id to create the List activity 
i.putExtra("selected_item", _new_item); 
i.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TASK); 
PostActivity.this.startActivity(i); 

の両方が動作しませんでした。

おそらくfinish()を上記の目的で使用する他の方法はありますか? 私は明示的に結果のアクティビティを開始したくありません。

+0

http://stackoverflow.com/questions/38374297/how-to-close-all-activities-and-exit-from-an- app/38374433#38374433 –

+0

これではうまくいきません。新しいListActivityに行った後に戻るボタンを押すと、アプリケーションは終了します。 ViewActivityだけでなくスタック全体がクリアされているようです。 – hGen

+0

申し訳ありませんが、私はあなたができることをここに書きます –

答えて

1

コードの最後にfinish()を追加してフラグを削除すると、ViewActivityが破棄され、スタックから削除されます。この質問に答え、何を見てthat`s

Intent i = new Intent(ViewActivity.this, ListActivity.class); 
// new_item is a DTO containing the needed id to create the List activity 
i.putExtra("selected_item", _new_item); 
PostActivity.this.startActivity(i); 

finish(); 
関連する問題