V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
Cabana
V2EX  ›  微信

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

  •  
  •   Cabana · 2017-01-09 13:08:33 +08:00 · 2749 次点击
    这是一个创建于 2904 天前的主题,其中的信息可能已经有所发展或是发生改变。
    今天把玩了一会小程序,发现在 Android 下每个小程序都有一个单独的任务窗口,这是 Android 的什么特性吗还是微信的黑科技?
    14 条回复    2017-01-09 19:25:52 +08:00
    Lonely
        1
    Lonely  
       2017-01-09 13:23:16 +08:00 via iPhone   ❤️ 1
    Document
    Bown
        2
    Bown  
       2017-01-09 13:41:04 +08:00   ❤️ 2
    Cabana
        3
    Cabana  
    OP
       2017-01-09 13:57:33 +08:00
    @Lonely
    @Bown
    多谢,那如果用的是这个那是不是在微信的 Manifest 里会事先声明好了小程序的 activity 吗?感觉不太现实啊 0.0
    Chrisplus
        4
    Chrisplus  
       2017-01-09 13:58:58 +08:00
    可以理解为一个 webview activity ?
    Bown
        5
    Bown  
       2017-01-09 14:01:30 +08:00
    @Cabana 只需要一个 Activity ,启动 intent 加个 FLAG_ACTIVITY_NEW_DOCUMENT
    yuankui
        6
    yuankui  
       2017-01-09 14:07:42 +08:00
    chrome 里面,每个页面,每个插件都是一个进程
    跟这原理是不是差不多?
    Cabana
        7
    Cabana  
    OP
       2017-01-09 14:13:48 +08:00
    @Bown 哦,没仔细看文档,谢谢指教...
    Cabana
        8
    Cabana  
    OP
       2017-01-09 14:44:28 +08:00
    @Bown
    @Lonely
    额,刚注意到这个是 api21 才有的,我试了 Android4.4 也是可也用的,这又是咋回事呢?
    Bown
        9
    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
        10
    rabbitinhere  
       2017-01-09 17:40:48 +08:00
    喜闻乐见
    rabbitinhere
        11
    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
        12
    Lonely  
       2017-01-09 18:31:40 +08:00
    @rabbitinhere 这个当然也能实现,就是数目有限
    @Cabana 那就是 TaskAffinity 来产生新的 task
    Bown
        13
    Bown  
       2017-01-09 18:55:12 +08:00
    @Lonely 是有限的,一共 5 个 AppBrandUI ,试了 recent tasks 最多同时 5 个小程序
    Cabana
        14
    Cabana  
    OP
       2017-01-09 19:25:52 +08:00
    @Lonely
    @Bown
    @rabbitinhere
    嗯,已经跑通了,应该就是用 TaskAffinity 生成新的 task ,在跳转的时候加上一个 FLAG_ACTIVITY_NEW_TASK 就 Ok 了
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   933 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 22ms · UTC 19:38 · PVG 03:38 · LAX 11:38 · JFK 14:38
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.