当MainAcitivty调用onDestroy()时如何调用所有活动onDestroy()?

问题描述 投票:1回答:2

我做了两次测试活动。

public class MainActivity extends AppCompatActivity {
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        ...
        Button button = findViewById(R.id.button);
        button.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                startActivity(new Intent(MainActivity.this, SubActivity.class));
            }
    }

    @Override
    protected void onDestroy() {
        super.onDestroy();
    }
}

MainActivity中的此按钮可以启动SubActivity。

public class SubActivity extends AppCompatActivity {
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        ...
    }

    @Override
    protected void onDestroy() {
        super.onDestroy();
    }

    @Override
    public void onBackPressed() {
        startActivity(new Intent(SubActivity.this, MainActivity.class));
    }
}

在SubActivity中时,按返回按钮,它不会在SubActivity类中调用onDestroy()并启动MainActivity。我想做的是,完成MainActivity后如何调用SubActivity onDestroy()?当我在MainActivity中按“后退”按钮时,它不会调用SubActivity onDestroy()。有没有使用Intent.FLAG_ACTIVITY的解决方案?

android android-lifecycle
2个回答
0
投票

0
投票

在Java中:-

Intent i = new Intent(OldActivity.this, NewActivity.class); // set the new task and clear flags i.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK | Intent.FLAG_ACTIVITY_CLEAR_TASK); startActivity(i);

在Kotlin:-

val i = Intent(OldActivity.this, NewActivity::class.java) // set the new task and clear flags i.flags = Intent.FLAG_ACTIVITY_NEW_TASK or Intent.FLAG_ACTIVITY_CLEAR_TASK startActivity(i)

© www.soinside.com 2019 - 2024. All rights reserved.