android如何完成其​​他活动的活动

Jyo*_*sna 8 android android-activity

在我的应用程序中,我有3个活动.

从第1次活动到第2次,第2次到第3次.从3日开始,它再次升至第1名.如果我从第一个按回键,那么它应该进入主屏幕(应用程序将停止).如果我按下第一个键,它再次进入第二个活动,如果我按下第二个后退键,那么它将转到第一个.然后,如果我按回1键,则应用停止.

我想要什么,当我在第三个活动并按下后退按钮然后它应该到第一个并同时完成第二个活动.

我怎样才能做到这一点?

ud_*_*_an 16

刚打开第三个活动时完成第二个活动

假设在某个按钮点击的第二个活动中,您正在使用开始活动打开第三个活动;

startActivity(intent);
finish();//this will finish second activity and open third activity so when you press back from third activity it will open first activity.
Run Code Online (Sandbox Code Playgroud)

如果你想依赖某些条件然后依赖于活动

setResult(123);
Run Code Online (Sandbox Code Playgroud)

像这样的代码

现在在第二个活动中覆盖onActivityResult

@Override
    protected void onActivityResult(int requestCode, int resultCode, Intent data) {
        super.onActivityResult(requestCode, resultCode, data);
        if(resultCode==123){
            //finish
        }
    }
Run Code Online (Sandbox Code Playgroud)

还要确保你需要使用startActivityForResult(intent,requestCode); 导致第二次活动开始第三次活动.

import android.app.Activity;
import android.content.Intent;
import android.os.Bundle;
import android.view.View;
import android.widget.Button;

public class Activity2 extends Activity{

    Button button;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main1);

        button.setOnClickListener(new View.OnClickListener() {

            @Override
            public void onClick(View v) {
                startActivityForResult(new Intent(new Intent(Activity2.this,Activity3.class)), 12);
            }
        });
    }

    @Override
    protected void onActivityResult(int requestCode, int resultCode, Intent data) {

        if(resultCode==123 && requestCode==12){
            finish();
        }
        super.onActivityResult(requestCode, resultCode, data);
    }
}


import android.app.Activity;
import android.os.Bundle;
import android.view.View;
import android.widget.Button;

public class Activity3 extends Activity{

    Button button;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main1);
        button.setOnClickListener(new View.OnClickListener() {

            @Override
            public void onClick(View v) {
                setResult(123);
            }
        });
    }
}
Run Code Online (Sandbox Code Playgroud)