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アクティビティを開始したいと思います。ABA

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 に答える