问题标签 [android-task]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
4564 浏览

android - Android - 如何检测堆栈中的最终活动

我使用下面的代码来检查最后Fragment一个Activity弹出对话框


现在假设我有一组Activitys。如何对堆栈中的最后一个Activity是否执行相同Activity操作,然后弹出退出对话框?

0 投票
1 回答
797 浏览

android - Android创建不同的backstacks(任务)并返回给他们

我读过这篇文章:http: //developer.android.com/guide/components/tasks-and-back-stack.html

如果我没看错的话,它说你可以创建一个带有新活动的新任务,而旧任务仍然有一个后台堆栈。他们也在谈论回到旧的塔克斯。但是我没有找到如何实现这一点。

我想要的是:

我有一个导航抽屉。我想点击一个项目。当按下返回时,它会返回到根。但是如果单击另一个项目,则返回堆栈将保存在当前任务中。然后在这个其他项目中创建一个新的 backstack。再次单击第一项时,我想转到 backstack 的顶部,因此请继续您所在的位置。

例子:

  1. A1 -> A2 -> A3 (点击抽屉项目)(所以 backstack 是(A1,A2,A3))
  2. A1 -> A4 -> A5(最后点击的抽屉项目)
  3. A3 (在 A1、A2、A3 中)

这可能吗?

注意:我使用活动,它是一个大型应用程序,活动更易于维护。

0 投票
1 回答
52 浏览

android - 从小部件启动活动时的活动堆栈行为

我有两个活动。让我们称它们为ActivityAand ActivityBsingleTaskActivityA在清单文件中被标记。我可以ActivityBActivityA使用简单startActivity调用开始(不Intent使用标志)。我也可以ActivityC从它ActivityA开始ActivityB(也使用 "simple" Intents)。

ActivityB有一个执行此代码的按钮:

我还有一个可以开始ActivityA使用此代码的小部件:

它也可以ActivityB从网格项目开始:

如果我ActivityA从启动器开始ActivityB,从它开始(或ActivityA-> ActivityC-> ) - 我可以使用后退按钮或按钮(如上所述)ActivityB移回ActyvityA(或)并且不会重新创建。没关系。ActivityCActivityBActivityA

问题是,如果我ActivityB从小部件开始并使用后退按钮或按钮ActivityB(如上所述)ActivityA被重新创建并成为堆栈中的单个实例。

我希望能够以ActivityA始终是根活动的方式管理这两个活动,如果它已经在运行,则不会重新创建。

0 投票
1 回答
1878 浏览

android - 如何在 Android 上清除 SingleTop SingleInstance MainActivity 上的堆栈?

我正在尝试通过startActivity带有Intent标志的方法清除堆栈上的每一个活动: (Intent.FLAG_ACTIVITY_CLEAR_TOP | Intent.FLAG_ACTIVITY_NO_HISTORY)

(我有一个退出按钮,可以重置并完成所有活动,我尝试了所有“如何制作退出按钮,如何终止应用程序”问题/答案。singleInstance launchMode由于MainActivity.

通常这应该工作并自动完成当前活动而无需调用finish(). 但是,当我将 MainActivity 标记为singleInstanceAndroidManifest.xml,它不起作用。如果我删除它singleInstance,它会按预期工作。

如果我finish()在启动之后/之前手动调用MainActivity以清除所有堆栈,finish()则会将应用程序返回到堆栈上的上一个活动。但我已经启动了MainActivity. 所以一切都变得一团糟。

(我尝试添加Intent.FLAG_ACTIVITY_SINGLE_TOPandIntent.FLAG_ACTIVITY_MULTIPLE_TASK只是为了看看它是否改变了任何东西,但它没有)

我需要一个可以使用singleInstance且不需要手动的解决方案finish()

更新 1:我尝试Intent从一个SingleTop活动中启动它(但改变它不会改变)

更新 2:我在 Android 2.3.3 模拟器上试试这个

0 投票
4 回答
1358 浏览

android - 即使在操作系统终止应用程序后,Android 活动仍保留在堆栈中

问题:该应用程序允许您打开大量活动。正常启动应用程序,打开几个活动,然后在 HOME 按钮上关闭应用程序。使用您的手机,打开其他应用程序。在某些时候,Android OS 会终止应用程序进程,您可以重新启动应用程序。开始正确使用它,打开几个活动,然后返回,返回,返回关闭活动。当您关闭最后一个时,您可以看到您之前使用的活动。

第一个问题:为什么我的活动在操作系统杀死应用程序后停留在后台?

第二个问题:如何解决这个问题?

0 投票
6 回答
24588 浏览

android - Job Scheduler 未在设定的时间间隔内运行

我正在尝试使用 android Job Scheduler API,而我要做的就是让 Job Scheduler 每 5 秒运行一次。但是,当我运行它时,每两分钟就会触发一次相应的服务。我有一个记录每次服务被击中的日志。我不确定为什么会这样。Job Scheduler 能否有一个最小的间隔时间。我的代码很简单...

问题最初是在我尝试运行日常任务时出现的,但它会在当天多次触发服务并且不会遵循时间指南。

让我知道你的想法。

0 投票
1 回答
1085 浏览

android - 当使用 taskAffinity 在同一应用程序的启动器中拥有多个活动时,如果一个处于活动状态,则另一个需要单击两次

场景:一个应用程序的启动器中显示了两个活动,它们具有不同的 taskAffinities,因为我遇到了当我打开一个,回家,打开另一个,第一个会打开的问题。因此,我在 AndroidManifest 中添加了 taskAffinity 以执行正确的任务。

我遇到的问题是,如果我打开一个,点击主页,点击第二个,它将打开正确的任务/活动,但我必须点击图标两次才能打开并获取,仅此发生在指定 taskAffinity 的活动中,另一个在每次第一次单击时打开就好了。

这是清单

0 投票
0 回答
930 浏览

android - Android 应用程序从 Eclipse 安装和运行,但从手机上的 .apk 文件安装时不会运行

我有一个我一直在为 Android 开发的应用程序。该应用程序从 Eclipse 安装并运行良好,但是当我导出 . 时.apk,将其放在手机上并安装它,然后该应用程序将无法运行并关闭。

我在 logcat 中收到此消息:

有没有其他人遇到过这个?有任何想法吗?

更新:
实际上这是导致问题的原因:

0 投票
3 回答
193 浏览

android - 如何操作当前任务的 Activity 回栈?

目前我有3个Activity班级A,B和C。

活动 A 是singleTask其他活动具有默认启动模式。考虑一个案例:用户首先在A,然后启动B,然后启动C。

现在的后栈是 ABC。

接下来,用户再次启动 A。

现在的后栈是A,但我想实现的是ABCA。

我知道不设置ActivityAsingleTask可以有一个回栈:ABCA。但我真的需要 Activity A 是同一个实例。

有人知道怎么做吗?

0 投票
4 回答
2699 浏览

android - Android 应用、活动状态(运行、未运行、前台/后台)

我遇到了一个要求,但我无法获得正确的实施方式,因此需要您的帮助。

我想做的事?- 我想根据收到的通知执行一项操作,如下所示:

  1. 当应用程序打开并在前台即用户可见并且我收到通知时,我只需显示一个弹出窗口来启动我的 Activity B
  2. 当应用程序关闭时,即既不在后台也不在前台,我收到通知我将首先启动我的应用程序,然后启动 Activity B
  3. 当应用程序在后台运行但在最近运行但对用户不可见时,我想在不重新启动应用程序的情况下启动我的 Activity B。此外,在这种情况下,当用户按下 Activity B 时,他们应该在将其发送到后台之前看到他们离开的屏幕。

我做了什么?我已经达到了第 1 点和第 2 点。我想达到第 3 点。我已经尝试过以下

然而,这在这两种情况下都返回 true,点 #2 和 #3,所以我无法仅区分 #3。

此外,我在每个活动中都尝试了以下内容,

但是,如果通过按主页按钮将应用程序发送到后台,它也不会给出所需的结果,我的首选项将isPaused = true并且如果用户从最近删除应用程序,那么它将保持真实,我不会再能够在通知到达时区分第 2 点和第 3 点。

为整个故事道歉,但我希望我能够解释我的要求。

提前致谢。:)

编辑: