Android:从堆栈中删除 Activity

标签 android android-activity

我的应用程序后端有一个数据库树结构。 它基本上如下所示:

List
  |- View

我编写了将 View 转换为显示 View 的列表的功能。显示在这里:

List
  |- List
     |- View

当触发 toList() 函数时,应用程序应该重建数据库中的结构,并切换到显示列表内容的新列表 Activity 。

除一件事外,以上所有工作:

当切换到新的 List Activity 时,应从堆栈中删除先前的 View ,以便在按下“后退”按钮时保持顺序。

我尝试了以下 Intent :

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() 来达到上述目的? 我明确表示不想为了结果而开始 Activity 。

最佳答案

只需在您的代码末尾添加一个 finish() 并删除标志,这将破坏 ViewActivity 并将其从您的堆栈中删除!

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();

关于Android:从堆栈中删除 Activity ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38376005/

相关文章:

java - android应用程序和java之间的通信

android:如何检查应用程序是否在后台运行 2

java - 设置后退按钮无法使用波纹管代码?

java - Android 连接 MySQL 数据库失败

android - 安卓字体?

android - AlarmManager 和 WakeLock

android - 按下后退按钮没有返回到之前的 Activity Android

Android onResume 在 onNewIntent 之后没有被调用

android - 要求用户启用 GPS 或网络提供商...illegalargumentException 提供商==null

java - 尝试停止未运行的线程时无法销毁 Activity