加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程开发 > Java > 正文

java – 活动堆栈问题

发布时间:2020-12-15 02:35:37 所属栏目:Java 来源:网络整理
导读:我有两组活动假设每组3个活动,(A1,B1,C1 || A2,B2,C2)我从A1开始我的应用程序然后 – B1 – C1这里我想从C1跳到 – A2和A2,如果我按回它应该存在应用程序而不是让我回到C1,然后从A2我导航到 – B2 – C2. 所以基本上我想改变起始活动,就像我在一个应用程序中
我有两组活动假设每组3个活动,(A1,B1,C1 || A2,B2,C2)我从A1开始我的应用程序然后 – > B1 – > C1这里我想从C1跳到 – > A2和A2,如果我按回它应该存在应用程序而不是让我回到C1,然后从A2我导航到 – > B2 – > C2.

所以基本上我想改变起始活动,就像我在一个应用程序中有两个应用程序,当我转到第二个应用程序时,我必须清除活动堆栈.那可能吗?有任何想法吗?

解决方法

在我看来,你已经回答了自己的问题.你写了:

So it is basically I want to change the starting Activity,it is like
I have two Apps in one App and when I flip to the second App I have to
clear the Activity Stack.

我会这样做:

创建DispatcherActivity,它是在启动应用程序时启动的活动.此活动是您的任务的根活动,负责启动A1或A2,取决于…而不是自己调用finish()(即:它将被A1或A2覆盖,但仍然位于活动的根部堆).

在A1中,捕获“后退”键并告诉DispatcherActivity退出如下:

@Override
public void onBackPressed() {
    Intent intent = new Intent(this,DispatcherActivity.class);
    intent.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
    intent.addExtra("exit","true");
    startActivity(intent);
}

这将清除任务堆栈到根活动(DispatcherActivity),然后再次使用此意图启动DispatcherActivity.

在C1中,要启动A2,请执行以下操作:

Intent intent = new Intent(this,DispatcherActivity.class);
intent.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
intent.addExtra("A2","true");
startActivity(intent);

这将清除任务堆栈到根活动(DispatcherActivity),然后再次使用此意图启动DispatcherActivity.

在DispatcherActivity中,在onCreate()中,您需要根据intent中的extras确定要执行的操作,如下所示:

Intent intent = getIntent();
if (intent.hasExtra("exit")) {
    // User wants to exit
    finish();
} else if (intent.hasExtra("A2")) {
    // User wants to launch A2
    Intent a2Intent = new Intent(this,A2.class);
    startActivity(a2Intent);
} else {
    // Default behaviour is to launch A1
    Intent a1Intent = new Intent(this,A1.class);
    startActivity(a1Intent);
}

在A2中,捕获“后退”键并告诉DispatcherActivity使用与A1中相同的onBackPressed()覆盖来退出.

注意:我只是输入了这段代码,所以我没有编译它,它可能不完美.你的旅费可能会改变

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读