如何破坏以前在android中的活动?

时间:2017-10-16 03:58:06

标签: android

我目前处于我目前处于从活动A调用的活动B的情况。所以我想要的是当活动B中出现某种情况时,活动A将从堆栈中移除,这样它就不会当用户按下后退按钮时出现。删除所有活动不是一种选择,因为在A之前还有其他活动,我不想销毁。我特别需要销毁活动A.

4 个答案:

答案 0 :(得分:0)

当您开始活动B时,只需完成活动A.

类似的东西:

startActivty(intent);
this.finish();

this指当前活动(活动A),intent打算打开活动B.

编辑:仅在特定条件下删除活动A:

startActivityForResult(intent); // Starting Activity B.

然后在活动B中:

onBackPressed() {
    setResult(...); // Set result as RESULT_OK etc based on condition. You can also send some data.
}

然后在活动A中再次:

onActivityResult(...) {
    if ( ... ) // check the condition value from the result
        finish();
}

答案 1 :(得分:0)

如果你不想让你的活动保持在后台堆叠,你也可以添加有意图的旗帜,

    Intent intent= new Intent(...);
    intent.setFlags(Intent.FLAG_ACTIVITY_NO_HISTORY);
    startActivity(intent);

答案 2 :(得分:0)

在活动A中

    public class MainActivity extends AppCompatActivity {
        public static Activity a;
        protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main_activity);
        a=this;
    } 
 ......
 } 

在活动B中

    public class SecondActivity extends AppCompatActivity {
      protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.second_activity);

      //Finish Activity here, like on button click
     btn= (Button) view.findViewById(R.id.close);
     btn.setOnClickListener(new View.OnClickListener() {      
     @Override
      public void onClick(View v) {
      MainActivity.a.finish();           //To finish MainActivity
    }
 });


  } 

} 

答案 3 :(得分:0)

从活动A开始活动B时,只需使用finish()

Intent intent=new Intent(A.this,B.class); startActivty(intent); this.finish();