我目前的APP流程是这样:
起始画面(一张图)→ActivityA
有另外四个 Activity 分别是:ActivityB、ActivityC、ActivityD、ActivityE
然后 ActivityA~E 都可以互相切换 不会关闭
如果跳转流程是这样:A→B→C→D→E→C
C 不会重新 onCreate 而是 onRestart
每个 Activity 都会去数据库拿不同资料 存成ArrayList 来建置当前的页面
但是因为 ActivityB 的资料量很大的关系
所以从 ActivityA→ActivityB 的时候 画面就会读取一段时间(大概2~3秒)
正常来讲 第一次进入 ActivityB 读取久一点没关系
但是每次进入 ActivityB 的时候都会重新 onCreate 造成读取 会造成使用者烦躁
所以想说 如果已经开启过 ActivityB 然后切换到其他 Activity 的时候
不要 finish ActivityB 这样下次进入 ActivityB 的时候就不用重新 onCreate 了
我目前的做法是:
跳转指令都用 startActivity(new Intent(this, ActivityB.class));
(不 call finish();)
接着在 AndroidManifest.xml 的地方
将 ActivityA~E 加上 android:launchMode="singleTask"
原本是没问题的 但是加上读取数据库 数量太大的时候(大约一万多笔)
从 ActivityB→ActivityA 之后 ActivityB 马上就跳出 onDestroy 了
然后再从 ActivityA→ActivityB 又要读取了…
这样该怎么实现这个功能?
或是有其他最佳化读取的方法吗?
抱歉我的想法很奇怪 恳请大家解惑