问题标签 [launchmode]

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 投票
0 回答
208 浏览

android - 当子活动从android中的最近列表开始时如何重新启动应用程序

我的应用程序有两个活动。

  • 主要活动:单任务
  • 子活动:singleInstance

使用触摸应用程序图标启动应用程序时,主要活动开始。并转到子活动,然后按主页按钮。然后使用任务杀手杀死应用程序。当用户从最近的列表中选择应用程序时,我想重新启动应用程序,但应用程序从子活动开始。我试图在主要活动上设置 clearTaskOnLaunch 但它不起作用。

有谁知道如何解决这个问题?

0 投票
2 回答
7668 浏览

android - 如果按下后退按钮,android singleinstance 活动不是单一的

我遇到了一个有趣的问题,一个 Activity 被创建了多次,即使它在 manifest 中定义为一个 singleTask 或一个 singleInstance Activity。这是如何复制的。说,在主要活动中:

在我的 SingleActivity 中,我有:

在清单中,我有:

现在,如果我启动应用程序,一切似乎都还好,在一种情况下可以预期:如果我SingleActivity在前面按下“后退”按钮,它会导航回MainActivityMainActivity.onResume()将在其中创建另一个SingleActivity实例,而不是把已经存在的那个. 这是我知道的,因为在日志上显示了不同的身份哈希码。

如果启动模式是 singleTask,似乎也是如此。

唯一的解决方法似乎是 override onBackPressed(),但这似乎是一个丑陋的解决方案。

我想知道我做错了什么

0 投票
2 回答
3084 浏览

android - 无法重新启动由 PendingIntent 启动的活动

我无法重新启动由PendingIntent.

“无法重新启动”意味着什么,例如,当关于活动已经运行时,永远不会调用onCreateonNewIntent 。startActivity()

名为 MainActivity 我无法重新启动的 Activity 是 singleTop并覆盖onNewIntent

以下是关于MainActivity

首先,它MainActivity是由具有未决意图的通知启动的。

我的 PendingIntent 是:

MainActivity执行startService(),服务执行sendBroadcast(),广播类执行startActivity(Intent(this,MainActivity.class))

Jere 是 BroadcastClass:

然后onNewIntent()是......永远不会被调用onCreate()

但是,当通过在 homeScreen 上按下图标启动程序时,onNewIntentinMainActivity被同一流程调用。

编辑: onNewIntent 在这里。

“onNewIntent”没有出现在 LogCat 上。

0 投票
1 回答
1577 浏览

android - android:launchMode singleInstance 问题

Android 的 singleInstance launchMode 似乎为我的应用程序的主要任务做了我想要的,即每当我从左侧菜单栏导航回它时保持该 Activity 的状态。

问题是,使用此启动模式设置,我看到大多数设备上的活动之间出现可怕的黑色闪烁。谷歌搜索没有发现任何关于这是否正常或如何解决的问题。

我尝试了 singleTask,但这并没有完全符合我的要求,因为如果我从任务 A - B - C 回到 A,任务 B 将从堆栈中删除,并且在我开始时必须再次重新加载它的状态那个活动。

此外,这可能是缺乏对 singleInstance 的完全理解,但后退按钮不再适用于这些活动。我想要发生的是,当按下后退按钮时,任何 singleInstance 活动都会返回到主屏幕。

对此的任何帮助将不胜感激。

谢谢!

0 投票
1 回答
536 浏览

android - Android:在 singleTop/singleTask 模式下绑定应用程序 (AIDL)

我用 AIDL 文件绑定了 2 个 android 应用程序。A和B应用程序之间的交换如下:

  • A应用通过AIDL接口连接到B应用
  • A应用调用B服务的方法
  • B 服务返回一个 PendingIntent
  • 应用程序启动 PendingIntent
  • 当 B 应用程序中的操作完成时:返回 A 应用程序

但是,如果 B 应用程序在交换之前启动,则在调用“finish()”方法后,用户将被重定向到 B 应用程序的最后一个活动,而不是在 A 应用程序中。

在我的 A 应用程序中:

我尝试在 A 应用程序清单文件中将 android:launchMode 设置为 singleTask 或 singleTop 但问题仍然存在。如您所见,我在发送活动时还放置了一个“FLAG_ACTIVITY_MULTIPLE_TASK”标志。

我的 B 应用程序中的代码:

创建 PendingActivity

在计费活动中

感谢您的阅读!

- -更新

我的 B 活动清单文件:

0 投票
2 回答
1392 浏览

android - Android 从服务启动 Activity 而不启动应用程序的其他 Activity

我在检测到 IncomingCall 时开始使用 Theme.Dialog 的活动;但是,当我开始我的对话活动时,它会隐藏来电屏幕,这不是我想要的行为。我想单独启动该对话活动,以便它出现在来电屏幕的顶部,而不是整个应用程序出现在来电屏幕的顶部。我在 Manifest 和 NEW_TASK 标志中使用了 SingleTask,并使用了各种上下文。作为提示,我想做类似 TrueCaller Android App 的事情。

0 投票
3 回答
1631 浏览

android - 为什么 Android 应用程序中的 Account Picker 会被取消?

按照将文件从 Android 设备上传到 Google Drive 的“五分钟快速入门”文档,我编写了一个成功上传文件的测试应用程序,但我尝试将相关代码复制到更大的应用程序并没有上传文件,因为它的 Google Account Picker 总是被取消:

  • onActivityResult() 结果代码为 0(即 RESULT_CANCELED),
  • onActivityResult() 意图参数为空,并且
  • logcat(如下所示)显示“活动正在作为新任务启动,因此取消活动结果。”

04-22 02:04:25.098: D/alsa_ucm(162): snd_use_case_set(): uc_mgr 0x40e59388 identifier _verb value HiFi Lowlatency 04-22
02:04:25.098: D/alsa_ucm(162): 设置扬声器启用 1 的混音器控制
04-22 02:04:25.098: D/ACDB-LOADER(162): ACDB -> send_afe_cal 04-22
02:04:25.098: I/ActivityManager(526): START u0 {act=com.google.android.gms .common.account.CHOOSE_ACCOUNT cmp=com.google.android.gms/.common.account.AccountPickerActivity (has extras)} from pid 3484
04-22 02:04:25.098: W/ActivityManager(526): Activity 启动为一个新任务,因此取消活动结果。
04-22 02:04:25.108: D/alsa_ucm(162): 设置 HiFi Lowlatency enable 1 的混音器控制 04-22
02:04:25.108: D/ALSAModule(162): 返回的设备值为 hw:0,14
04-22 02:04:25.118: D/ALSAModule(162): setHardwareParams: reqBuffSize 1024 通道 2 sampleRate 48000
04-22 02:04:25.118: D/ALSAModule(162): setHardwareParams: buffer_size 2048, period_size 1024, period_cnt 2
04-22 02:04:25.188: D/dalvikvm(526): GC_FOR_ALLOC 释放 565K, 15% 释放 18562K/21684K, 暂停 71ms, 总共 71ms 04-22
02:04:25.248: D/overlay(159): 未设置管道=VG0 dpy=0;未设置管道=VG1 dpy=0;取消设置 pipe=RGB1 dpy=0
04-22 02:04:25.248: W/InputMethodManagerService(526): 窗口已经聚焦,忽略焦点增益:com.android.internal.view.IInputMethodClient$Stub$Proxy@41ebd7e0 属性=null , token = android.os.BinderProxy@42018140
04-22 02:04:27.991: D/dalvikvm(526): GC_FOR_ALLOC 释放 422K, 15% 释放 18564K/21684K, 暂停 65ms, 共 66ms
04-22 02:04:28.011: I/ActivityManager(526): 不再需要 com.google.android.marvin.talkback (pid 5301): empty #17
04-22 02:04:28.241: D/overlay(159 ): 设置管道=RGB1 dpy=0; 设置管道=VG0 dpy=0;设置管道=VG1 dpy=0;
04-22 02:04:28.672: D/overlay(159): Unset pipe=VG0 dpy=0; 未设置管道=VG1 dpy=0;未设置管道=RGB1 dpy=0;

启动 Google 帐户选择器的代码在两个应用程序中完全相同,但选择器仅在较大的应用程序中被取消。

测试应用程序和更大的应用程序都是调试版本,包括相同的 jars(如下所示),并且在相同的设备(Nexus 4,OS 4.2.2)上运行,但是,正如五分钟快速入门中所建议的,每个应用程序都有自己的由Google API 控制台生成的自己的客户端 ID 。

在此处输入图像描述

取消的结果是 onActivityResult() 在 Google Account Picker 被绘制后立即运行,远在选择帐户之前。

更新:
经过大致等量的试验和错误后,事实证明,从 AndroidManifest.xml 中删除以下内容可以解决问题。

我最初的问题是为什么现在转向为什么 Android 中的 Google Account Picker 需要创建多个实例?

谢谢,
格雷格

0 投票
0 回答
416 浏览

android - Mosync 应用程序在通过通知启动时崩溃。LaunchMode 单任务

我正在使用 Mosync SDK 3.2.1 为 Android 2.2、2.3 和 4.03 开发 HTML 5 应用程序。我遇到了这篇文章http://jira.mosync.com/browse/MOSYNC-2367中描述的问题。建议的修复

android:launchMode="singleTask"

解决了从菜单启动应用程序时的“重新启动应用程序”问题,但在应用程序在后台运行时通过通知破坏了应用程序的启动行为。(在launchMode =“标准”,工作正常,应用程序恢复)。使用此修复程序,它会崩溃并显示消息“不幸的是,Zymbo 已停止”(4.0.3)和“应用程序 Zybmbo 已意外停止”。

如果应用程序不在后台运行,则通过通知启动可以正常工作,应用程序将启动。

这就是在清单文件中声明 MAIN 活动的方式。

这是应用程序现在的行为方式:
1. 通过菜单快捷方式启动应用程序
2. 按“主页”
3. 通过菜单快捷方式启动应用程序 (launchMode="standard" => 重新启动应用程序 BAD / launchMode="singleTask" resumes后台应用程序 OK)
4. 按“Home”
5. 通过通知项启动应用程序(launchMode="standard" - 打开在后台运行的应用程序 OK /launchMode="singleTask" 应用程序崩溃 BAD)

我想要实现的是,如果应用程序在后台运行并且我从菜单中单击通知或应用程序图标,我希望应用程序恢复而不是重新启动。

任何提示表示赞赏,谢谢你,迈克

0 投票
1 回答
136 浏览

android-widget - 小部件配置活动不创建小部件

我正在使用 aSherlockFragmentActivity作为小部件配置活动:

为什么我创建一个新的小部件,活动打开,但是当它结束时,虽然我让它返回一个 OK 结果,但没有创建任何小部件:

当我有一个不同的(非Sherlock)配置活动时,它曾经工作过,我不知道为什么它不能与这个活动一起工作。也许 aSherlockFragmentActivity不能充当配置活动?还是我错过了其他东西?

0 投票
2 回答
1063 浏览

android - 如何避免点击android快捷方式创建新的应用程序实例并杀死旧的

我通过以下代码创建了一个 android 快捷方式

当我打开我的应用程序,最后在一些像 BActivity 这样的活动中,然后我切换到主屏幕并单击快捷方式,应用程序像上面的代码一样来到 MainActivity,我有机会避免这种情况,只是让应用程序进入前台如果它已经创建?