Android是否存储您浏览的活动?

时间:2019-04-14 21:52:33

标签: java android

我正在为一个项目创建一个应用程序。事实是,我正在使用BottomNavigationView来浏览活动。但是,这里存在一个问题,当我按下“后退按钮”时,即使我多次访问同一个选项卡,该应用程序也会浏览我浏览的每个页面。

我想要达到的功能类似于Instagram所实现的功能:尽管以前已经浏览过同一标签,但只浏览了一次。

观看gif以了解我的意思。 https://gyazo.com/a7f536dbe1b204923ea790db50e8a88e

我每次触摸BottomNavigationView中的项目时都会执行此代码。

case R.id.bnHome:                                                               
     Intent intentHome = new Intent(context,HomeActivity.class);
     context.startActivity(intentHome);
     callingActivity.overridePendingTransition(R.anim.fade_in,R.anim.fade_out);
     break;

当前情况:当我开始关闭时:搜索->个人资料->搜索->个人资料->主页->退出

期望值:开始关闭时:搜索->个人资料->主页->退出

2 个答案:

答案 0 :(得分:0)

使用碎片可以达到此行为。像View一样对其进行片段化,但具有与Activity相似的生命周期,它们的创建是为了重用和去耦UI。这是an example的确切构建所需内容的方法。

答案 1 :(得分:0)

首先,您需要使用Fragment来获得更具可读性和可维护性的导航结构。

第二,

使您的活动成为一项任务

<activity
    android:name=".MyActivity"
    android:launchMode="singleTask" >
</activity>

在startActivity调用期望来自Home之后添加finish()。

case R.id.bnHome:                                                               
 Intent intentHome = new Intent(context,HomeActivity.class);
 context.startActivity(intentHome);
 callingActivity.overridePendingTransition(R.anim.fade_in,R.anim.fade_out);
 finish();
 break;

这可能是可行的,但是如果您选择使用片段,则无需为每个页面初始化底部栏或其他常见的视图或操作。