小白问下 android 的小程序怎么实现,每个小程序独立任务的呢?

2017-01-09 13:08:33 +08:00
 Cabana
今天把玩了一会小程序,发现在 Android 下每个小程序都有一个单独的任务窗口,这是 Android 的什么特性吗还是微信的黑科技?
2730 次点击
所在节点    微信
14 条回复
Lonely
2017-01-09 13:23:16 +08:00
Document
Bown
2017-01-09 13:41:04 +08:00
Cabana
2017-01-09 13:57:33 +08:00
@Lonely
@Bown
多谢,那如果用的是这个那是不是在微信的 Manifest 里会事先声明好了小程序的 activity 吗?感觉不太现实啊 0.0
Chrisplus
2017-01-09 13:58:58 +08:00
可以理解为一个 webview activity ?
Bown
2017-01-09 14:01:30 +08:00
@Cabana 只需要一个 Activity ,启动 intent 加个 FLAG_ACTIVITY_NEW_DOCUMENT
yuankui
2017-01-09 14:07:42 +08:00
chrome 里面,每个页面,每个插件都是一个进程
跟这原理是不是差不多?
Cabana
2017-01-09 14:13:48 +08:00
@Bown 哦,没仔细看文档,谢谢指教...
Cabana
2017-01-09 14:44:28 +08:00
@Bown
@Lonely
额,刚注意到这个是 api21 才有的,我试了 Android4.4 也是可也用的,这又是咋回事呢?
Bown
2017-01-09 16:42:02 +08:00
@Cabana adb shell dumpsys 看了下,发现不是 document ,小程序的 Activity 是 com.tencent.mm.plugin.appbrand.ui.AppBrandUI ,然后一共有 5 个: AppBrandUI 到 AppBrandUI4 ,每个都通过 taskAffinity 放到单独的 activity task
rabbitinhere
2017-01-09 17:40:48 +08:00
喜闻乐见
rabbitinhere
2017-01-09 18:11:11 +08:00
试过了 taskAffinity 不同也不能实现这个效果的
<activity
android:name=".activity1"
android:label="@string/app_name"
android:taskAffinity="com.ningstech.edjyun.t1"
...

<activity
android:name=".activity1"
android:label="@string/app_name"
android:taskAffinity="com.ningstech.edjyun.t2"
...

难道不是这么写的吗 @Bown
Lonely
2017-01-09 18:31:40 +08:00
@rabbitinhere 这个当然也能实现,就是数目有限
@Cabana 那就是 TaskAffinity 来产生新的 task
Bown
2017-01-09 18:55:12 +08:00
@Lonely 是有限的,一共 5 个 AppBrandUI ,试了 recent tasks 最多同时 5 个小程序
Cabana
2017-01-09 19:25:52 +08:00
@Lonely
@Bown
@rabbitinhere
嗯,已经跑通了,应该就是用 TaskAffinity 生成新的 task ,在跳转的时候加上一个 FLAG_ACTIVITY_NEW_TASK 就 Ok 了

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/333272

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX