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

2018-12-04 08:58:21 +08:00
 whereabouts
手机内存有点小只有 3GB,想了解一下原因
2713 次点击
所在节点    问与答
24 条回复
lhx2008
2018-12-04 09:00:28 +08:00
原因就是你内存太小了
honeycomb
2018-12-04 09:01:34 +08:00
这年头 6G 内存比较保险
luojianxhlxt
2018-12-04 09:02:05 +08:00
给你看广告的设计
justahri
2018-12-04 09:06:32 +08:00
当然是让你看广告放松啦
shenhb
2018-12-04 09:06:41 +08:00
因为 android 设计就是这样,后台的进程在内存不足的时候会被杀掉,回收内存
ruimz
2018-12-04 09:12:12 +08:00
让你看广告啦
比如我王者荣耀切到后台聊句微信再回来都不掉线,从 tb 切出去再回来就得看广告了
我看 tb 的时候锁屏再打开,都会出广告。
而且每次 tb (非启动)出广告的时候内存用了一半都没有呢
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
2018-12-04 09:21:46 +08:00
界面被回收了,想办法把进程锁住吧,不回收就没问题了
greenskinmonster
2018-12-04 09:23:48 +08:00
楼上一堆瞎扯的,resume 时显示 splash screen,跟 app 被系统回收,重新运行完全两码事。
系统回收策略,每个厂商都会自己定制,并不是跟 AOSP 完全一致。
maxxxxx
2018-12-04 09:27:03 +08:00
@greenskinmonster 说楼上瞎扯,你也没扯出什么干货啊。
greenskinmonster
2018-12-04 09:30:57 +08:00
@maxxxxx #10 resume,系统回收,点到了还不明白的话,给你干货你咽得下吗?
jdgui
2018-12-04 09:39:38 +08:00
@greenskinmonster 楼主是 3g 内存,而且是运行大 app 才会出现。所以基本上可以排除厂商在 resume 的时候展示的。
mike77546
2018-12-04 10:03:02 +08:00
你的手机内存太小
wohenyingyu03
2018-12-04 10:11:07 +08:00
@jdgui 人家回的是楼上瞎扯的,不是回楼主。
fan123199
2018-12-04 10:14:56 +08:00
没错,是 app 设计太烂。好的 app 可以做到不重启。除非你手动退出。
maxxxxx
2018-12-04 10:31:08 +08:00
@greenskinmonster 干货没看到,看到了你的傲慢。哪里来的优越感?
Raisu
2018-12-04 10:33:50 +08:00
产品需求就是这样吧
icop
2018-12-04 10:36:37 +08:00
我说的是,如果从桌面点击进去会重启 APP,从最近任务点击进去不会重启 APP。

具体原因看下面的地址:
https://issuetracker.google.com/issues/36941942
maxxxxx
2018-12-04 10:38:49 +08:00
@greenskinmonster resume 说白了就是前后台切换?从楼主的描述上明显就是杀了进程,我看了下楼上说目的让你看广告的明显是在开玩笑而已,不知道你说楼上瞎扯的意义。
jdgui
2018-12-04 10:43:57 +08:00
@wohenyingyu03 好像是,我理解偏了。

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

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

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

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

© 2021 V2EX