375得票14回答
清除整个历史栈并在Android上启动新活动

有没有可能在堆栈上启动一个活动,清除整个历史记录? 情况 我有一个活动堆栈,要么是A->B->C,要么是B->C(屏幕A选择用户令牌,但许多用户只有一个令牌)。 在屏幕C中,用户可能会执行某些操作,使得屏幕B无效,因此应用程序希望将其带到屏幕A,而不管它是否已经在堆栈中。在我的应用中,屏...

262得票15回答
以编程方式返回回退栈中的上一个片段

假设我有一个活动,其中的片段是以编程方式添加的:private void animateToFragment(Fragment newFragment, String tag) { FragmentTransaction ft = getFragmentManager().beginT...

232得票14回答
如何防止返回到先前的活动?

当手机上的“返回”按钮被按下时,我想要防止特定活动返回到之前的界面。 具体来说,我有登录和注册屏幕,两者都会在成功登录/注册后启动名为HomeScreen的新活动。一旦启动了HomeScreen,我希望用户无法通过按返回键返回到登录或注册屏幕。 我尝试使用Intent.FLAG_ACTIV...

229得票20回答
回退栈中的Fragment onResume()和onPause()方法没有被调用

我在一个活动中有多个碎片。当点击按钮时,我会启动一个新的碎片,并将其添加到后退栈中。我自然期待当前碎片的onPause()方法和新碎片的onResume()被调用。但实际上并没有发生。 LoginFragment.javapublic class LoginFragment extends ...

173得票16回答
当添加到返回栈时,我如何保持片段状态?

我编写了一个切换两个片段的虚拟活动。 当你从FragmentA切换到FragmentB时,FragmentA会添加到后退栈中。 但是,当我返回到FragmentA(通过按back键),一个全新的FragmentA被创建,并且它之前的状态丢失了。 我感觉我需要的与此问题相同,但我已经包含了完整的...

166得票6回答
如何从BackStack中恢复已有的Fragment

我正在学习如何使用碎片。我在类的顶部初始化了三个Fragment实例。我像这样将碎片添加到活动中: 声明和初始化:Fragment A = new AFragment(); Fragment B = new BFragment(); Fragment C = new CFragment();...

160得票18回答
Android:从返回栈中删除所有先前的活动

当我在我的个人资料活动中点击注销按钮时,我希望将用户带到登录页面,需要用户使用新的凭据。 因此我使用了以下代码:Intent intent = new Intent(ProfileActivity.this, LoginActivity.class); intent.addF...

130得票11回答
如何防止在使用不同意图(Intent)启动Activity时出现多个实例

我在使用Google Play商店应用程序(之前称为Android Market)上的“打开”按钮启动我的应用时遇到了一个bug。似乎从Play商店启动它使用的Intent与从手机应用程序菜单中的图标启动的不同。这导致启动多个相同的Activity,它们彼此冲突。 例如:如果我的应用程序由活...

125得票9回答
Android Fragment回退栈问题

我在Android Fragment的返回栈(backstack)使用上遇到了一些问题,希望可以得到帮助。 假设你有3个Fragments: [1] [2] [3] 我想要用户能够通过导航条实现[1] > [2] > [3]的跳转,但是在回退时(按下返回按钮)实现[3] &g...

119得票6回答
如何在后退栈上反转片段动画?

我以为在使用片段时,通过以下代码会使系统在按下后退按钮时反转后退堆栈上的动画:FragmentManager fm = getFragmentManager(); FragmentTransaction ft = fm.beginTransaction(); ft.setCustomAnima...