首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >Android:从历史堆栈中清除旧的活动实例

Android:从历史堆栈中清除旧的活动实例
EN

Stack Overflow用户
提问于 2020-02-20 10:00:12
回答 5查看 160关注 0票数 2

我有以下简单的场景:

ListCarsActivity.kt是一种名为

  • 的活动,用于显示汽车列表。当用户单击AddCarActivity.kt
  • When时,它会打开另一个名为FloatingActionButton的活动--用户单击Add Car按钮,我将启动一个新的意图,转到最初的ActivityListCarsActivity.kt,在这里现在显示添加的汽车。

Problem:从现在开始,当我单击“后退”按钮时,第二次显示ListCarsActivity。

如何从历史堆栈中清除ListCarsActivity的旧条目?

EN

回答 5

Stack Overflow用户

回答已采纳

发布于 2020-02-20 10:26:58

调用您的AddCarActivity.kt活动,如下所示在您的ListCarsActivity.kt

代码语言:javascript
运行
复制
val intent = Intent(mContext, AddCarActivity.class);
startActivityForResult(intent, 1); //Use any request code

现在,对于上面的代码,startActivityForResult所做的是打算从其他活动或源(如照相机、联系人等)接收数据。

现在,当在您的AddCarActivity.kt中完成所有工作时,您可以使用下面的意图来获得结果

代码语言:javascript
运行
复制
                Intent intent = getIntent();
                intent.putExtra("key", data); // if you wanted to get data 
                setResult(RESULT_OK, intent);
                finish();

ListCarsActivity.kt中,您需要添加onActivityResult,这将从AddCarActivity.kt获取数据

代码语言:javascript
运行
复制
 @Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
    try {
        super.onActivityResult(requestCode, resultCode, data);

        if (resultCode == RESULT_OK) {
            if (requestCode == 1) { //Your request code here
                Object obj = data.getParcelableExtra("key");
                 //Do as per your needs

            }
        }

    } catch (Exception ex) {
        ex.printStackTrace();
    }
}

这样,如果您想在第一个活动中返回新添加的数据,则可以在不使用任何第三方库的情况下获取数据。

试一试,让我知道它是否对你有用。

票数 2
EN

Stack Overflow用户

发布于 2020-02-20 10:08:31

使用finish()startActivity(intent)之后完成要启动另一个活动的活动

票数 0
EN

Stack Overflow用户

发布于 2020-02-20 10:11:10

您应该使用AddCarActivity方法运行startActivityForResult,然后必须在AddCarActivity中用setResult方法设置结果,该方法将您返回到ListCarsActivity,而无需再次启动它。

正式文件:https://developer.android.com/training/basics/intents/result

https://developer.android.com/reference/android/app/Activity#setResult(int,%20android.content.Intent)

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/60317274

复制
相关文章

相似问题

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