标签: activity-stack

如何防止回到以前的活动?

当在电话上按下BACK按钮时,我想阻止特定活动返回到之前的活动.

具体来说,我有登录和注册屏幕,都会HomeScreen在成功登录/注册时启动一个新活动.启动HomeScreen后,我想通过按BACK键阻止用户返回登录或注册屏幕.

我尝试过使用Intent.FLAG_ACTIVITY_NO_HISTORY,但由于应用程序有Facebook集成,当使用"使用Facebook登录"时,Facebook应该返回初始登录屏幕,因此我应该保留这些活动的历史记录.

HomeScreen当按下按钮并且我使用时,我想到覆盖BACK按钮的行为以直接完成应用程序

@Override
public void onBackPressed() {
    finish();
}
Run Code Online (Sandbox Code Playgroud)

但这也行不通.

android back activity-stack back-stack

196
推荐指数
6
解决办法
16万
查看次数

如何使用不同的意图启动活动时,如何防止活动的多个实例

当我使用Android市场上的"打开"按钮启动时,我在应用程序中遇到了一个错误.似乎从市场上推出它会使用不同的意图,然后从手机的应用程序菜单中启动它.这导致启动相同活动的多个副本,这些副本彼此冲突.

例如,如果我的应用程序包含ABC活动,则上述问题可能会导致堆栈ABCA.

我尝试使用Intent所有活动来解决这个问题,但每当我点击HOME时,它都会产生不必要的副作用,即将活动堆栈清除为root.

示例: ABC - > HOME - > A当我需要的是ABC - > HOME - > ABC

在使用HOME时,是否有一种防止启动相同类型的多个活动而不重置根活动的好方法?

android activity-stack google-play back-stack

116
推荐指数
3
解决办法
7万
查看次数

Android:launchMode ="singleTask"中的错误? - >活动堆栈未保留

我的主要活动A已经android:launchMode="singleTask"在清单中设置了.现在,每当我从那里开始另一个活动,例如B并按下HOME BUTTON手机上的电话返回到主屏幕,然后再次返回我的应用程序,可以通过按应用程序的按钮或按下HOME BUTTON长按来显示我最近的应用程序不保留我的活动堆栈并直接返回A而不是预期的活动B.

这里有两个行为:

Expected: A > B > HOME > B
Actual: A > B > HOME > A (bad!)
Run Code Online (Sandbox Code Playgroud)

有没有我缺少的设置或这是一个错误?如果是后者,在修复错误之前是否有解决方法?

仅供参考:这个问题已经在这里讨论过.但是,似乎没有任何真正的解决方案.

android activity-stack

63
推荐指数
4
解决办法
3万
查看次数

防止活动堆栈被还原?

当应用程序的进程被终止时,将保存其活动堆栈.然后,当重新启动应用程序时,我的所有活动都会恢复并运行为空指针.我宁愿让我的应用程序从基本活动开始,而不是尝试重新创建活动堆栈,而不是修改每个活动以适应此事件.

这可能吗?

我知道Intent.FLAG_ACTIVITY_CLEAR_TOP,但据我所知,只会在重新创建后杀死活动.

编辑:是clearTaskOnLaunch我想要什么?我已将其添加到我的默认活动中,但看不到任何效果.但即使我只是最小化应用程序,这也会扼杀我的活动,不是吗?如果整个过程重启,我宁愿只清除堆栈.

编辑2:不,这不是我想要的 - 一位Android工程师对如何使用ClearTaskOnLaunch的一些问题做出了彻底的回应:http://groups.google.com/group/android-developers/browse_thread/thread/da024bcaf4e1960f/ab1e2b35c360cb65 ?PLI = 1

android kill process activity-stack android-activity

26
推荐指数
1
解决办法
6385
查看次数

如何完成所有活动并关闭android中的应用程序?

我的应用程序有以下流程:

首页 - >屏幕1->屏幕2->屏幕3->屏幕4->屏幕5>主页 - >屏幕2->主页 - >屏幕3

我的问题是,当我尝试关闭应用程序时,每当我尝试关闭应用程序时,Home活动就会打开.

我只想在用户在主屏幕上按下设备的后退键时关闭应用程序.

android activity-stack android-activity

22
推荐指数
3
解决办法
4万
查看次数

noHistory vs finish() - 哪个更受欢迎?

我不希望我的应用程序在按下按钮时显示很少Activity(说SplashScreenActivity)back.所以我noHistory=true在我的Manifest.xml用途中使用Activity如下所示:

<activity
    android:name="com.gokul.SplashScreenActivity"
    android:noHistory="true" >
</activity>
Run Code Online (Sandbox Code Playgroud)

noHistory我也可以finish()用我的SplashActivity.onPause()方法或任何我想要的方式调用,而不是设置,如下所示:

@Override
protected void onPause() {
    super.onPause();
    finish();
}
Run Code Online (Sandbox Code Playgroud)

两者都能完美地完成工作.但哪一个更好用,使用noHistory或打电话finish()

android activity-stack back-stack

22
推荐指数
2
解决办法
9734
查看次数

如何在Android应用程序中找到后台堆栈活动?

我有一个活动的应用程序返回堆栈A - > B - > C - > D - > E.现在在活动E,我想知道我导航的后台堆栈活动.我怎么找到这个?

android activity-stack back-stack

20
推荐指数
3
解决办法
2万
查看次数

强制关闭时活动重新启动

我有一个具有单个根Activity的应用程序.我最近引起了我的注意,任何一种强制关闭我的活动导致它重新启动,我不知道为什么会发生这种情况.如果我强制执行未捕获的异常或使用"长按后强制关闭"选项,它们都会产生相同的结果.

我唯一的猜测是某种形式的怪癖与保留对Activity的某些部分的引用有关,只有我在应用程序级别没有任何一些WeakReference条目.

相关的logcat条目:

05-25 08:25:49.137: INFO/ActivityManager(18449): Displayed uk.co.randomicon.rstb/.TreeBuilderActivity: +8s82ms
05-25 08:25:54.222: DEBUG/dalvikvm(18546): GC_EXPLICIT freed 12K, 57% free 3640K/8327K, external 8323K/10136K, paused 72ms
05-25 08:25:55.373: WARN/InputManagerService(18449): Got RemoteException sending setActive(false) notification to pid 19122 uid 10069
05-25 08:25:59.217: DEBUG/dalvikvm(18646): GC_EXPLICIT freed 128K, 48% free 2980K/5703K, external 0K/0K, paused 67ms
05-25 08:26:00.238: DEBUG/dalvikvm(18991): GC_CONCURRENT freed 343K, 51% free 2794K/5639K, external 303K/532K, paused 3ms+3ms
05-25 08:26:02.950: INFO/Process(18449): Sending signal. PID: 19554 SIG: 9
05-25 08:26:02.980: INFO/ActivityManager(18449): Process uk.co.randomicon.rstb (pid 19554) has died.
05-25 …
Run Code Online (Sandbox Code Playgroud)

crash android kill activity-stack android-activity

12
推荐指数
1
解决办法
1万
查看次数

如何避免按后退按钮/键返回登录布局?

我想为我的学院创建一个应用程序.

问题是:我的应用程序将有两个布局(登录和仪表板).

学生可以正确填写登录表单,进入仪表板,按下按钮,填写其他字段.但是,如果用户然后按下后退按钮,它不应返回到登录屏幕,而是保留在仪表板中,否则退出应用程序.

然后,如果学生重新打开应用程序并且已经记录,则应自动将其重定向到仪表板,而不是登录屏幕,除非用户按下仪表板上的注销按钮,然后将其重定向回登录屏幕.

你怎么能做到这一点?

编辑: 我实现了2个意图和2个活动,并且我出现的新问题是,当我按下主页按钮并从任务管理器打开应用程序时,在剩下的活动中打开,但如果从图标打开则打开应用程序再次从第一个活动开始,在最后一个活动中打开了吗?

session android login back-button activity-stack

10
推荐指数
1
解决办法
1万
查看次数

Android:从HOME重启后保留任务的活动堆栈

我的应用程序有两个活动,我按此顺序开始:

HOME > A > B
Run Code Online (Sandbox Code Playgroud)

现在我按HOME并再次启动"A".我想在"A"的顶部看到活动"B",但我得到"A" - 所以活动堆栈被清除.

表现:

<activity android:name=".activity.A" android:label="A" android:alwaysRetainTaskState="true">
    <intent-filter>
        <action android:name="android.intent.action.MAIN" />
        <category android:name="android.intent.category.LAUNCHER" />
    </intent-filter>
</activity>

<activity android:name=".activity.B" android:label="B">
    <intent-filter>
    </intent-filter>
</activity>
Run Code Online (Sandbox Code Playgroud)

我该怎么办?

android activity-stack

9
推荐指数
1
解决办法
8790
查看次数