Android 点击home键回到桌面,再点击app,原来的activity被destroy了,怎么处理
Android点击home键回到桌面,再点击app,原来的activity被destroy了,怎么处理?由于原来的activity被gc回收了,然后走了ondestroy...
Android 点击home键回到桌面,再点击app,原来的activity被destroy了,怎么处理?
由于原来的activity被gc回收了,然后走了ondestroy()方法,该如何解决呢? 展开
由于原来的activity被gc回收了,然后走了ondestroy()方法,该如何解决呢? 展开
4个回答
展开全部
该线程如果没有跑完run方法不会被关闭,当程序终止的时候线程会被结束掉。该thread发消息给handler后handler将继续处理,是否会报错在于是否调用了该activity,及该activity的内存是否被回收。activity调用onDestroy方法后内存并没有被销毁,而是处在了activity栈的底层,当内存不够的时候,该activity的内存将被回收掉。所以在该activity的内存未回收,并且调用activity时不会报错,在该activity的内存已经被回收,并调用该activity时会报错。可以在该activity中加入标记变量来标记是否该activity被destroy,当该变量值为真时不处理该消息。
追问
那怎么样才能继续留在原来的activity呢
展开全部
默认是不回收的,除非内存不足,或者你自己代码里退出了
更多追问追答
追问
是内存不足,我看日志有GC回收的消息。怎么解决呢
追答
释放一下手机内存。另外注意下launchMode,想要重新进入时保留原有内容,需要设置android:launchMode="singleTask"
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
我的是把launchMode改为"standard"就好了,之前用的singleTask会导致home退出后,上层activity被destroy。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
<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" ,把这行去掉就可以了,这是我个人沙雕的一种情况。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询
广告 您可能关注的内容 |