Android 点击home键回到桌面,再点击app,原来的activity被destroy了,怎么处理

Android点击home键回到桌面,再点击app,原来的activity被destroy了,怎么处理?由于原来的activity被gc回收了,然后走了ondestroy... Android 点击home键回到桌面,再点击app,原来的activity被destroy了,怎么处理?

由于原来的activity被gc回收了,然后走了ondestroy()方法,该如何解决呢?
展开
 我来答
云来看雨
推荐于2017-12-31 · TA获得超过611个赞
知道小有建树答主
回答量:455
采纳率:0%
帮助的人:219万
展开全部
该线程如果没有跑完run方法不会被关闭,当程序终止的时候线程会被结束掉。该thread发消息给handler后handler将继续处理,是否会报错在于是否调用了该activity,及该activity的内存是否被回收。activity调用onDestroy方法后内存并没有被销毁,而是处在了activity栈的底层,当内存不够的时候,该activity的内存将被回收掉。所以在该activity的内存未回收,并且调用activity时不会报错,在该activity的内存已经被回收,并调用该activity时会报错。可以在该activity中加入标记变量来标记是否该activity被destroy,当该变量值为真时不处理该消息。
追问
那怎么样才能继续留在原来的activity呢
li_lzw
2014-12-16 · TA获得超过218个赞
知道小有建树答主
回答量:588
采纳率:0%
帮助的人:244万
展开全部
默认是不回收的,除非内存不足,或者你自己代码里退出了
更多追问追答
追问
是内存不足,我看日志有GC回收的消息。怎么解决呢
追答
释放一下手机内存。另外注意下launchMode,想要重新进入时保留原有内容,需要设置android:launchMode="singleTask"
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
百度网友b2943417
2017-12-31
知道答主
回答量:4
采纳率:0%
帮助的人:2788
展开全部
我的是把launchMode改为"standard"就好了,之前用的singleTask会导致home退出后,上层activity被destroy。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
Mr_Yung
2019-09-03
知道答主
回答量:1
采纳率:0%
帮助的人:706
展开全部

<activity
android:name=".SplashActivity"

android:launchMode="singleTask"    

android:theme="@style/SplashTheme">

<intent-filter>
<action android:name="android.intent.action.MAIN" />

<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>

</activity>


我的问题是在android.intent.action.MAIN设置了launchMode="singleTask" ,把这行去掉就可以了,这是我个人沙雕的一种情况。

已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(2)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式