Android 运行大一点的 App 切换 App 后马上返回原 App 都会导致原 App 重新运行 是什么设计 - V2EX
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
whereabouts
V2EX    问与答

Android 运行大一点的 App 切换 App 后马上返回原 App 都会导致原 App 重新运行 是什么设计

  •  
  •   a href="/member/whereabouts">whereabouts 2018-12-04 08:58:21 +08:00 2998 次点击
    这是一个创建于 2508 天前的主题,其中的信息可能已经有所发展或是发生改变。
    手机内存有点小只有 3GB,想了解一下原因
    24 条回复    2018-12-04 16:43:36 +08:00
    lhx2008
        1
    lhx2008  
       2018-12-04 09:00:28 +08:00 via Android   3
    原因就是你内存太小了
    honeycomb
        2
    honeycomb  
       2018-12-04 09:01:34 +08:00 via Android
    这年头 6G 内存比较保险
    luojianxhlxt
        3
    luojianxhlxt  
       2018-12-04 09:02:05 +08:00   5
    给你看广告的设计
    justahri
        4
    justahri  
       2018-12-04 09:06:32 +08:00
    当然是让你看广告放松啦
    shenhb
        5
    shenhb  
       2018-12-04 09:06:41 +08:00
    因为 android 设计就是这样,后台的进程在内存不足的时候会被杀掉,回收内存
    fbcskpebfr
        6
    fbcskpebfr  
       2018-12-04 09:12:12 +08:00 via Android
    让你看广告啦
    比如我王者荣耀切到后台聊句微信再回来都不掉线,从 tb 切出去再回来就得看广告了
    我看 tb 的时候锁屏再打开,都会出广告。
    而且每次 tb (非启动)出广告的时候内存用了一半都没有呢
    icop
        7
    icop  
       2018-12-04 09:21:14 +08:00
    我也遇到了。并且从任务管理器切回去就不会重启,如果从桌面点进去就会重启。
    我是这么处理的。
    在你的基类 Activity 里面的 onCreate()方法中,加入如下代码:
    if (!isTaskRoot()) {
    Intent mainIntent = getIntent();
    String action = mainIntent.getAction();
    if (mainIntent.hasCategory(Intent.CATEGORY_LAUNCHER) && Intent.ACTION_MAIN.equals(action)) {
    finish();
    return;
    }
    }
    并且重新实现基类 Activity 的

    @Override
    public boolean moveTaskToBack(boolean nonRoot) {
    return super.moveTaskToBack(true);
    }

    应该就能解决问题了。
    还有你的启动模式 不能用 singeInstance。
    anan1231230
        8
    anan1231230  
       2018-12-04 09:21:46 +08:00
    界面被回收了,想办法把进程锁住吧,不回收就没问题了
    greenskinmonster
        9
    greenskinmonster  
       2018-12-04 09:23:48 +08:00
    楼上一堆瞎扯的,resume 时显示 splash screen,跟 app 被系统回收,重新运行完全两码事。
    系统回收策略,每个厂商都会自己定制,并不是跟 AOSP 完全一致。
    maxxxxx
        10
    maxxxxx  
       2018-12-04 09:27:03 +08:00
    @greenskinmonster 说楼上瞎扯,你也没扯出什么干货啊。
    greenskinmonster
        11
    greenskinmonster  
       2018-12-04 09:30:57 +08:00   2
    @maxxxxx #10 resume,系统回收,点到了还不明白的话,给你干货你咽得下吗?
    jdgui
        12
    jdgui  
       2018-12-04 09:39:38 +08:00
    @greenskinmonster 楼主是 3g 内存,而且是运行大 app 才会出现。所以基本上可以排除厂商在 resume 的时候展示的。
    mike77546
        13
    mike77546  
       2018-12-04 10:03:02 +08:00
    你的手机内存太小
    wohenyingyu03
      nbsp; 14
    wohenyingyu03  
       2018-12-04 10:11:07 +08:00
    @jdgui 人家回的是楼上瞎扯的,不是回楼主。
    fan123199
        15
    fan123199  
       2018-12-04 10:14:56 +08:00
    没错,是 app 设计太烂。好的 app 可以做到不重启。除非你手动退出。
    maxxxxx
        16
    maxxxxx  
       2018-12-04 10:31:08 +08:00
    @greenskinmonster 干货没看到,看到了你的傲慢。哪里来的优越感?
    Raisu
        17
    Raisu  
       2018-12-04 10:33:50 +08:00
    产品需求就是这样吧
    icop
        18
    icop  
       2018-12-04 10:36:37 +08:00   1
    我说的是,如果从桌面点击进去会重启 APP,从最近任务点击进去不会重启 APP。

    具体原因看下面的地址:
    https://issuetracker.google.com/issues/36941942
    maxxxxx
        19
    maxxxxx  
       2018-12-04 10:38:49 +08:00
    @greenskinmonster resume 说白了就是前后台切换?从楼主的描述上明显就是杀了进程,我看了下楼上说目的让你看广告的明显是在开玩笑而已,不知道你说楼上瞎扯的意义。
    jdgui
        20
    jdgui  
       2018-12-04 10:43:57 +08:00
    @wohenyingyu03 好像是,我理解偏了。
    greenskinmonster
        21
    greenskinmonster  
       2018-12-04 10:44:37 +08:00   1
    @wohenyingyu03 #14 @jdgui #12
    抱歉,打击面过广,确实不是说楼主。
    系统内存太少是一个解释。
    我更倾向于系统回收策略有点问题,如果这个 app 刚刚还使用过,系统还是应该先回收使用时间更早的应用。
    yogogo
        22
    yogogo  
       2018-12-04 13:21:07 +08:00
    假装重新启动页,其实是要让你看启动页的广告
    xzk715
        23
    xzk715  
       2018-12-04 14:03:02 +08:00
    @icop 你的回答是正解 其他的都在扯淡 我们开发也遇到这个问题 确实是 Android 的原因 跟各厂商没关系
    iacyl
        24
    iacyl  
       2018-12-04 16:43:36 +08:00 via Android
    内存太小,还有可能系统为了内存杀 app。
    关于     帮助文档     自助推广系统     博客     API     FAQ     Solana     960 人在线   最高记录 6679       Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 26ms UTC 22:54 PVG 06:54 LAX 15:54 JFK 18:54
    Do have faith in what you're doing.
    ubao msn snddm index pchome yahoo rakuten mypaper meadowduck bidyahoo youbao zxmzxm asda bnvcg cvbfg dfscv mmhjk xxddc yybgb zznbn ccubao uaitu acv GXCV ET GDG YH FG BCVB FJFH CBRE CBC GDG ET54 WRWR RWER WREW WRWER RWER SDG EW SF DSFSF fbbs ubao fhd dfg ewr dg df ewwr ewwr et ruyut utut dfg fgd gdfgt etg dfgt dfgd ert4 gd fgg wr 235 wer3 we vsdf sdf gdf ert xcv sdf rwer hfd dfg cvb rwf afb dfh jgh bmn lgh rty gfds cxv xcv xcs vdas fdf fgd cv sdf tert sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf shasha9178 shasha9178 shasha9178 shasha9178 shasha9178 liflif2 liflif2 liflif2 liflif2 liflif2 liblib3 liblib3 liblib3 liblib3 liblib3 zhazha444 zhazha444 zhazha444 zhazha444 zhazha444 dende5 dende denden denden2 denden21 fenfen9 fenf619 fen619 fenfe9 fe619 sdf sdf sdf sdf sdf zhazh90 zhazh0 zhaa50 zha90 zh590 zho zhoz zhozh zhozho zhozho2 lislis lls95 lili95 lils5 liss9 sdf0ty987 sdft876 sdft9876 sdf09876 sd0t9876 sdf0ty98 sdf0976 sdf0ty986 sdf0ty96 sdf0t76 sdf0876 df0ty98 sf0t876 sd0ty76 sdy76 sdf76 sdf0t76 sdf0ty9 sdf0ty98 sdf0ty987 sdf0ty98 sdf6676 sdf876 sd876 sd876 sdf6 sdf6 sdf9876 sdf0t sdf06 sdf0ty9776 sdf0ty9776 sdf0ty76 sdf8876 sdf0t sd6 sdf06 s688876 sd688 sdf86