问题标签 [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.
android - Android:主页启动器活动仅在第一次按 HOME 时重新创建到新任务中
我想阻止用户离开我的应用程序。我正在尝试通过家庭启动器活动/应用程序来实现这一点,但我不了解 android 的行为。第一次按 HOME 总是在新任务中创建新活动,而不是将现有活动移到前台。第二次按 HOME 等时,没有任何反应。参见示例:
我有一个登录活动 (A) 和设置活动 (B)。B 从 A 打开。A 设置为启动器(LAUNCHER、DEFAULT、HOME 类别)。
- A 打开 B
- 任务 T1:A -> B
- 家
- 另一个 A 被创建到一个新任务中(为什么?):
- T1:A -> B
- T2:一个
- A 打开 B(任务 T2)
- T1:A -> B
- T2:A -> B
- 家
- 什么都没有发生,为什么?
当 A 的launchMode是singleTop、singleTask或standard时,我会得到相同的行为。使用singleInstance只有一个 A,但 B 在 T1 中单独存在,我不希望这样。
为什么总是有新的任务被创建?所有意图标志始终设置FLAG_ACTIVITY_NEW_TASK标志。为什么安卓会这样做?
它与此处或此处发布的行为相同吗?我不能使用那个解决方案,因为 android 创建了一个新任务,所以 A 将永远是根。(或者我如何检查这是第二个实例?)
我不能使用这里发布的singleInstance,因为我不希望 B 独自一人(如果 A 可见,它也是唯一的活动和任务(登录目的))。我试图通过 ActivityManager 删除所有其他任务,但对于 SDK >= 21,我的最小值是 16。getAppTasks()
我什至不能使用这个解决方案,因为我从来没有使用 FLAG_ACTIVITY_BROUGHT_TO_FRONT 标志。总是有 FLAG_ACTIVITY_RESET_TASK_IF_NEEDED 标志。
我已经尝试了很多与launchMode、clearTaskOnLaunch、noHistory 的组合......但没有成功 - 总是新任务。
知道如何解决这个问题吗?在棒棒糖上运行。谢谢你。
android - Android:需要帮助安排任务和返回堆栈
如果这听起来很愚蠢和微不足道,我很抱歉,但我坚持了很长时间。
我有 5 个活动 A、B、C、D、E。链条像这样 A->B(移动到 C 后完成)->C->D->E。由于 C,D 是相互依赖的,所以我不想松开 C,D 的任何实例,直到我一起完成它们。我想在 E 中执行此操作,这意味着我想从 E 完成 C、D、E 并移动到 A或完成所有活动,然后打开 A 的新实例。如果有人已经为此类问题提供了简单的解决方案,请提供解决方案。我尝试了很多东西,最接近的是当我将C的launchMode设置为“singleTask”并将D的launchMode设置为“singleInstance”并在按下后退按钮时使用intent移动到C,这样我就可以在没有完成的情况下来回移动任何活动,无论是否创建新实例对 E 都无关紧要,因此将其保持为“标准”。然后我使用意图打开 A 并添加了标志“FLAG_ACTIVITY_CLEAR_TOP”,还尝试使用 startActivityFor 结果关闭 D,因为它是一个“singleInstance”活动。
现在的问题之一是我无法理解正在创建的结构,但我认为它是这样的
现在我必须从 E 转到 A 的新实例并关闭其他所有内容。由于所有活动都具有相同的亲和力,我尝试使用 finishAffinity() 但它也没有锻炼。
另一个问题是,当您在 E 中设置结果时,不会调用 D 中的 onActivityResult 方法(根据 stackoverflow 中的一个答案,我认为这是因为 D 是单实例),但是当我按下后退按钮时,它是从 A 调用的A 或者我们可以说何时从 A 调用 finish() (我不知道为什么会发生这种情况)。所以,现在当我按下后退按钮时会出现不同类型的问题。
android - Gcm 网络管理器周期性任务
我有一个任务,它每 10 秒从服务器读取一次数据。我尝试了 gcm 网络管理器,在那里我创建了一个周期性任务并将间隔设置为 10L。但任务不是每 10 秒触发一次。连续发射的最短时间是 30 秒,尽管我提到它是 10 秒。对此的任何帮助将不胜感激。另外,请让我知道是否有任何其他最佳方法来实现它。这是我使用的代码:
仅出于测试目的,我在 MyService.class 中使用了一条日志语句。该服务仅在每 30 秒(大约)后触发。我想知道我可以为 gcm 网络管理器设置的最小时间间隔来触发周期性任务。
提前感谢大家。
android - 如何将值从一个活动发送到android中的另一个扩展活动?
我正在开发一个应用程序,其中我有一个共同的活动,即BaseActivity,我正在将它扩展到我的应用程序中的所有其他活动。我在 BaseActivity 中运行了几个 AsyncTask 以反映所有其他活动。我的查询是我需要从我的一项活动中将值传递给这个 BaseActivity,比如MainActivity
我尝试了类,接口概念,但不适合我。建议我,如何实现这一目标。如果需要我的任何参考代码,请评论它,我会发布它。
已编辑
我需要将此计数值传递给BaseActivity。我不能使用 Intent,因为我正在导航到另一个活动,比如MainActivity2
MainActivity 这是我的 AsyncTask 代码
android - Android - 从最近重新启动任务后返回 MainActivity
我有 MainActivity,我可以在其中启动相机应用程序来拍摄和上传照片。在相机应用程序中长按主页并从最近返回后,我返回相机应用程序。如何始终从最近或启动器图标单击后返回 MainActivity?
我的相机应用意图:
android - 从任务管理器滑动时,Android 后台服务在棒棒糖中停止
我在 android 应用程序中有一项服务,我想在后台连续运行,即使应用程序从任务管理器中被杀死。我当前的代码适用于棒棒糖前版本。但在棒棒糖中它不起作用(在棒棒糖中它从任务管理器停止).如何解决这个问题。
服务等级
主要活动
java - 如何清除 Android 中除前两个活动之外的所有活动?
我的应用程序的活动结构可以是以下任何一种。
案例1:A > B > B > B > D
案例2:A > B > D
案例3:A > B > B > B > C > D
Activity D 中有一个选项,当我选择它时,我想在堆栈上结束它:
A > B
理想情况下,B 是该活动的新实例。起初我以为我已经找到了我的解决方案ACTIVITY_FLAG_CLEAR_TOP
,它适用于案例 2。但是,无论是案例 1 还是案例 3,它最终都会使所有“下腹部”B 活动保持原样。A > B > B > B。
搜索互联网我发现了一个潜在的解决方案,使用ACTIVITY_FLAG_CLEAR_TOP
并ACTIVITY_FLAG_SINGLE_TOP
使用它来启动活动 A 并在 onNewIntent 或 onCreate 方法中捕获额外内容以立即启动活动 B 的实例。
但是,在代码方面,这对我来说似乎相当尴尬。特别是考虑到活动 A 是一个主屏幕,应该(从直观的事物流中)只有在帐户之间切换时才能访问(从技术上讲,角色,因为它是一个游戏)。
我想到的另一个解决方法是在 A 和 B 之间插入一个加载屏幕活动,我可以“召回”并从中重新启动 B。但是,这似乎也有点迟钝,因为它是一个简单的应用程序,实际上没有任何需要加载时间的东西。此外,还有可能将 Activity B 以后的所有活动都放在一个新任务中,但这似乎更加迟钝和不必要。
TLDR:除了 A 和新活动 B 之外,还有其他方法可以清除所有堆栈吗?或者是我注定要使用解决方法的答案。
编辑:我确实需要back stack
直到用户在活动 D 中选择特定选项为止。例如,如果他们只是在活动 D 或 B(或 C)活动之一中按下后退键,我确实需要它回到前一个活动(默认情况下),所以我继续完成这些活动是行不通的。
android - 从后台显示另一个应用程序的对话框活动
假设您有一个应用程序 A 打开另一个应用程序 B(例如地图),它不受您控制(即它是一个预先存在的应用程序)。所以现在应用程序 A 在后台。假设发生了一个事件,A 想要在应用 B 的 UI 上显示一个浮动对话框(同时让应用 B 的活动在其后面可见)。这可能吗?
(对此的通常答案是显示通知,但这不是大众市场应用程序,我们正试图非常直接地引起用户的注意。)
目前,我正在尝试做这样的事情:
从应用程序 A(在后台的那个)中。
但是,当我这样做时,会在原始应用程序 A 活动和后台堆栈上的应用程序 B 活动之间插入对话框。
android - 始终重新创建具有 launchMode singleTop 或 singleTask 的 Activity
我的应用程序中的 MainActivity 在清单文件launchMode
中定义了一个。singleTop
每当我单击通知时,我的 MainActivity 都会重新创建,并且旧实例会被销毁。当单击通知时, MainActivity 是可见的并且在前台,所以我假设意图将传递给当前实例onNewIntent()
,但这永远不会发生。这是我创建的意图:
我有时会像这样将FLAG_ACTIVITY_CLEAR_TOP
and添加FLAG_ACTIVITY_SINGLE_TOP
到意图中:
我也尝试过将singleTask
launchMode 与这些标志一起使用,并且发生了相同的行为。有人可以对这种行为提供一些见解吗?
android - 我可以依靠后台 Android 进程在合理的时间内被杀死吗
我们有一个应用程序将一些配置数据保存在内存中。在应用程序启动时从服务器获取配置数据。但是,我们希望不时更新此配置(以便将来自服务器的新配置数据传播到客户端)。我们的应用程序通常不会在前台停留很长时间。
根据 Android 文档,可以杀死后台进程以释放一些内存。然而,似乎无法保证这将在合理的时间内发生(例如 4 小时)。因此,如果不需要内存,应用程序可能会永远存在。 https://developer.android.com/guide/components/processes-and-threads.html
一段时间后我们可以依靠Android杀死后台任务吗?还是我们必须建立一种机制,在应用程序运行时更新配置数据?
您能否为一方或另一方提供一些文档或有充分根据的实验?
最好的祝福
本