2

我希望能够从父级启动和停止另一个活动,例如,如果我想将自定义对话框显示为一个活动。

因此,要开始我使用的活动:

private void showIntentDialog() {
    Intent i = new Intent(ActivityA.this, ActivityB.class);
    ActivityA.this.startActivity(i);    
}

但是,如何通过停止活动来处理它?

private void stopIntentDialog(){
    //how to finish it ?
}

ps 我搜索了很多主题,但找不到适合我的问题。他们中的大多数人在关闭B和返回A或返回某些值时遇到问题。

pss 明确地说,我想B从开始活动A,也想在一些操作之后B也从A.

4

1 回答 1

5

开始活动为:

private void showIntentDialog() {
    Intent i = new Intent(ActivityA.this, ActivityB.class);
    i.setFlags(Intent.FLAG_ACTIVITY_SINGLE_TOP);
    ActivityA.this.startActivity(i);    
}

要结束活动,请发送另一个带有布尔标志的意图:

private void dismissIntentDialog() {
    Intent i = new Intent(ActivityA.this, ActivityB.class);
    i.setFlags(Intent.FLAG_ACTIVITY_SINGLE_TOP);
    i.putExtra("finish",true);
    ActivityA.this.startActivity(i);
}

在目标活动中:

@Override
protected void onNewIntent (Intent i){
  if( i.getBooleanExtra("finish",false) ){
     finish();
  }
}
于 2013-01-17T09:57:24.540 回答