app长时间挂在后台在点击崩溃了

yung7086 2015-08-12 10:22:49
java.lang.RuntimeException: Unable to start activity ComponentInfo{com.flyjiang.earwornsnoring.activity/com.flyjiang.earwornsnoring.activity.MainActivity}: java.lang.RuntimeException: Parcel android.os.Parcel@4257f6a8: Unmarshalling unknown type code 140 at offset 2300
at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2198)
at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2247)
at android.app.ActivityThread.access$800(ActivityThread.java:141)
at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1210)
at android.os.Handler.dispatchMessage(Handler.java:102)
at android.os.Looper.loop(Looper.java:136)
at android.app.ActivityThread.main(ActivityThread.java:5050)
at java.lang.reflect.Method.invokeNative(Native Method)
at java.lang.reflect.Method.invoke(Method.java:515)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:806)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:622)
at dalvik.system.NativeStart.main(Native Method)
Caused by: java.lang.RuntimeException: Parcel android.os.Parcel@4257f6a8: Unmarshalling unknown type code 140 at offset 2300
at android.os.Parcel.readValue(Parcel.java:2087)
at android.os.Parcel.readSparseArrayInternal(Parcel.java:2382)
at android.os.Parcel.readSparseArray(Parcel.java:1742)
at android.os.Parcel.readValue(Parcel.java:2077)
at android.os.Parcel.readArrayMapInternal(Parcel.java:2321)
at android.os.Bundle.unparcel(Bundle.java:249)
at android.os.Bundle.getSparseParcelableArray(Bundle.java:1273)
at com.android.internal.policy.impl.PhoneWindow.restoreHierarchyState(PhoneWindow.java:1741)
at android.app.Activity.onRestoreInstanceState(Activity.java:955)
at android.app.Activity.performRestoreInstanceState(Activity.java:927)
at android.app.Instrumentation.callActivityOnRestoreInstanceState(Instrumentation.java:1138)
at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2176)
... 11 more
谁帮忙看一下,现在只有这些日志,猜测下什么原因该怎么做
...全文
544 7 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
yung7086 2015-08-14
  • 打赏
  • 举报
回复
引用 6 楼 dalor 的回复:
[quote=引用 5 楼 yung7086 的回复:] [quote=引用 3 楼 dalor 的回复:] 后台时间过长,activity被回收或其它数据被回收。 当调至前台时,或重新打开时,需要使用之前的数据,所以,就报异常了。 所以,你传过来的数据要作缓存最好。
从错误信息看出来确实如此,,只是我一直不明白的是 activity被回收了 那下次再次进入重新走oncrate。 就跟第一次进入流程是一样不会存在数据不全的现象,能将个场景么。[/quote] activity的回收并不代表应用被关闭。 重新启动activity,也要看你设置的activity是哪种启动模式了,启动方式不一样,要求也不一样。[/quote] 我感觉对这些感念有点模糊。我一直理解杀死进程是全部杀死了。理所当然acticity就会重新走oncreate流程。。当然这里跟启动模式一样没关系吧 因为acticty已经销毁了,启动模式就是正对activity已经存在第二次启动才会有不同的加载策略呀
_deadline 2015-08-12
  • 打赏
  • 举报
回复
系统恢复activity状态,从Parcel中数据时出错,估计是被内存释放了
开发者_android 2015-08-12
  • 打赏
  • 举报
回复
引用 5 楼 yung7086 的回复:
[quote=引用 3 楼 dalor 的回复:] 后台时间过长,activity被回收或其它数据被回收。 当调至前台时,或重新打开时,需要使用之前的数据,所以,就报异常了。 所以,你传过来的数据要作缓存最好。
从错误信息看出来确实如此,,只是我一直不明白的是 activity被回收了 那下次再次进入重新走oncrate。 就跟第一次进入流程是一样不会存在数据不全的现象,能将个场景么。[/quote] activity的回收并不代表应用被关闭。 重新启动activity,也要看你设置的activity是哪种启动模式了,启动方式不一样,要求也不一样。
yung7086 2015-08-12
  • 打赏
  • 举报
回复
引用 3 楼 dalor 的回复:
后台时间过长,activity被回收或其它数据被回收。 当调至前台时,或重新打开时,需要使用之前的数据,所以,就报异常了。 所以,你传过来的数据要作缓存最好。
从错误信息看出来确实如此,,只是我一直不明白的是 activity被回收了 那下次再次进入重新走oncrate。 就跟第一次进入流程是一样不会存在数据不全的现象,能将个场景么。
yung7086 2015-08-12
  • 打赏
  • 举报
回复
引用 1 楼 u010911576 的回复:
系统恢复activity状态,从Parcel中数据时出错,估计是被内存释放了
下午试了一下确实是这样的我在ddms下我看见我的进程被结束。再次点击就出错了,,但是问题来了因为我并没有重写onsavainstance和onRestoreInstanceState这些方法来保存恢复数据 ,没有数据需要保存,我只要他被系统kill后再次点击不是崩溃而是正常的重新启动就可以了 然后下午重写protected void onRestoreInstanceState(Bundle savedInstanceState) { // super.onRestoreInstanceState(savedInstanceState); } 并且把super.onRestoreInstanceState(savedInstanceState);注释了就可以了,即使杀死再次点击进入还能正常进入重新走oncreate不崩溃现象 这是为什么呢?
开发者_android 2015-08-12
  • 打赏
  • 举报
回复
后台时间过长,activity被回收或其它数据被回收。 当调至前台时,或重新打开时,需要使用之前的数据,所以,就报异常了。 所以,你传过来的数据要作缓存最好。
Arnold9009 2015-08-12
  • 打赏
  • 举报
回复
恢复activity所需要的数据定时存储,需要的时候再取出来

80,471

社区成员

发帖
与我相关
我的任务
社区描述
移动平台 Android
androidandroid-studioandroidx 技术论坛(原bbs)
社区管理员
  • Android
  • yechaoa
  • 失落夏天
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧