首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >当onDestroy()调用onDestroy()时,如何调用onDestroy()?

当onDestroy()调用onDestroy()时,如何调用onDestroy()?
EN

Stack Overflow用户
提问于 2020-01-30 02:15:11
回答 2查看 1K关注 0票数 1

我为考试做了两项活动。

代码语言:javascript
复制
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。

代码语言:javascript
复制
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。我想做的是,当我完成SubActivity onDestroy()时,如何调用MainActivity?当我按下SubActivity onDestroy()中的后退按钮时,它不会调用MainActivity。有没有像使用Intent.FLAG_ACTIVITY这样的解决方案?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2020-01-30 02:25:57

您应该在finish() SubActivity in onBackPressed中销毁它,然后返回到您的MainActivity,而不是执行startActivity。在许多情况下,即使不亲自实现onBackPressed,也会出现这种行为。当前代码正在启动第二个MainActivity

票数 0
EN

Stack Overflow用户

发布于 2020-01-30 04:55:18

提出的解决方案这里对我有效:

Java中的:-

代码语言:javascript
复制
    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);

In Kotlin:-

代码语言:javascript
复制
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)
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/59978214

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档