如何从 Android 的后台堆栈中删除 Activity?

Rag*_*hav 5 android

我有 4 个活动,假设当我从 C>D>A 移动时活动“A”、“B”、“C”和“D”,当我从活动“A”按下设备后退按钮时,“C”变得可见对我来说,而不是从应用程序中存在。我怎样才能实现这一目标。

Inz*_* IT 5

当您调用下一个活动时,您可以销毁您的活动。因此,Intent您可以调用finish()方法来销毁该活动。

检查这个

Intent intent = new Intent(this, NextActivity.class);
startActivity(intent);
finish();
Run Code Online (Sandbox Code Playgroud)

当您使用此功能时,它不会转到上一个活动,而是会完成该活动。

或者
您也可以使用NO_HISTORY标志

intent.setFlags(Intent.FLAG_ACTIVITY_NO_HISTORY);
Run Code Online (Sandbox Code Playgroud)


Jin*_*cis 0

在活动 A 中,您可以完成 onResume 中的所有活动,因为您需要将所有活动的 this 存储在静态变量中

活动B

public static B b;
oncreate(){
//...
b=this;
}
Run Code Online (Sandbox Code Playgroud)

对 C 和 D 以及 A 执行相同操作

onResume(){
   clearAllTasks();
}

public void clearAllTasks(){
 if(B.b!=null){
   B.b.finish();
 }
 if(C.c!=null){
   C.c.finish();
 }
 if(D.d!=null){
   D.d.finish();
 }
}
Run Code Online (Sandbox Code Playgroud)

明显地

<application>
  <activity android:name="A"
     android:noHistory="true">
  </activity>
  //...
</application>
Run Code Online (Sandbox Code Playgroud)