2013-09-23 8 views
16

私は前に活動を終えるのに問題があります。私は別のアクティビティを開始し、現在のアクティビティを終了したい。 finishを使用したとき、現在のアクティビティを終了しませんでした。仕上げ方法Androidで他のアクティビティを開始するときのアクティビティを完了しますか?

以前にこのアクティビティを終了するにはどうすればよいですか?

+0

  • 。 startActivity(インテント); finish(); –

  • +0

    あなたは、2つのアクティビティが同時に実行されている可能性がないので、最初のアクティビティが終了した場合に2番目のアクティビティを開始するために3番目のパーティが必要になるように聞こえます。もしそうなら、あなたはたぶん種類のタイマーで何らかのサービスを必要としているでしょう。 – MikeIsrael

    +0

    finish()はonResume()からonDestroy()にアクティビティを直接渡しますか? –

    答えて

    67

    intentあなたの現在のcontextを別のアクティビティに転送する必要があります。最初にstartActivityとしてください。その後、finishあなたの現在のactivityからリダイレクトすることができます。例えばのために

    Intent intent = new Intent(this, FirstActivity.class);// New activity 
    intent.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP); 
    startActivity(intent); 
    finish(); // Call once you redirect to another activity 
    
    +0

    ありがとう..非常に有用で成功... – mrhands

    +0

    私たちはなぜFLAG_ACTIVITY_CLEAR_TOP @vikalp patelを使うのですか? –

    +5

    これは、前のアクティビティに戻るボタンで戻ることができないことを確認します。 – erdomester

    0

    :あなたは、単にこのように与えるアクティビティB

    に、アクティビティAから切り替えるしたい場合は、2つのアクティビティを使用しています。

      Intent intent = new Intent(A.this, B.class); 
         startActivity(intent); 
         finish(); 
    
    3
    Intent i = new Intent(this,Here is your first activity.Class); 
        i.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP); 
        startActivity(i); 
        finish(); 
    
    1
    1. マニフェストファイルで、あなたの活動Aを行います。launchMode = "singleInstance"
    2. ユーザーが新しいクリックすると、FirstActivity.fa.finish();を行い、新しいテントを呼び出します。ユーザーがクリックが意図意図=新しいテント(A.this、B.class)を、変更新しいインテントを呼び出すか、単に活性B.を終了
    0
    startActivity(new Intent(context, ListofProducts.class) 
        .setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP) 
        .setFlags(Intent.FLAG_ACTIVITY_NEW_TASK) 
        .setFlags(Intent.FLAG_ACTIVITY_CLEAR_TASK)); 
    
    +0

    あなたの答えの周りにもう少し文脈を追加してください。コードのみの回答は理解しにくいです。あなたの投稿にさらに情報を追加することができれば、これはAskerと将来の読者に役立ちます。 – RBT

    関連する問題