我遇到了一个奇怪的问题。 首先,这是我的活动流程未知启动程序启动我的活动
IntActivity - > 111Activity - > 222activity - > 333Activity
每个活动都有[转发] & [返回]按钮。 (软件按钮) 而我在做什么的[转发]是:(即诠释到111)
Intent intent=new Intent(IntActivity.this, 111Activity.class);
startActivity(intent);
finish();
在[返回]这样做:(即333回到222。)
Intent intent=new Intent(333Activity.this, 222Activity.class);
startActivity(intent);
finish();
overridePendingTransition(android.R.anim.slide_in_left,android.R.anim.slide_out_right);
现在,用户说如果他们快速按下[返回],有时IntActivity已关闭,他们会看到 一个空白页。看起来像333Activity。
空白页面表示它具有完整的UI组件,但内部没有任何用户数据。 如果333Activity正确启动,它应该填充用户数据,并且333Activity可以由222Activity启动。
以下是我是怎么上的logcat看
INFO/ActivityManager(1321): Starting activity: Intent { cmp=tw.com.xxxx.android.yyyy/.IntActivity } from pid 14517
DEBUG/dalvikvm(14517): GC_EXPLICIT freed 2084K, 56% free 3653K/8199K, external 8158K/10188K, paused 65ms
ERROR/SurfaceFlinger(1321): layer=0xa49520 is not in the purgatory list
INFO/ActivityManager(1321): Process tw.com.xxxx.android.yyyy (pid 14517) has died.
// Here, the IntActivity ware been finished due to finish(); or System.exit(0); been called
INFO/WindowManager(1321): WIN DEATH: Window{40a0cae8 tw.com.xxxx.android.yyyy/tw.com.xxxx.android.yyyy.111Activity paused=false}
INFO/WindowManager(1321): WIN DEATH: Window{40a2a828 tw.com.xxxx.android.yyyy/tw.com.xxxx.android.yyyy.IntActivity paused=false}
INFO/ActivityManager(1321): Start proc tw.com.xxxx.android.yyyy for activity tw.com.xxxx.android.yyyy/.333Activity: pid=14535 uid=10105 gids={3003}
检查日志,它不是“启动活动”的最后一行,但“开始PROC”。
我还是不知道究竟怎么回事......任何意见或建议,欢迎:)
我的设备有: HTC DesireHD在Android 2.2的(不会有这个问题我贴) HTC DesireHD在android 2.3.3(显示这个问题,我张贴频率)
感谢您的回复,我确实知道您说了什么,这就是我之前的做法。但在我的APP中,最多会有7个活动堆栈。由于这个,我得到了低内存问题......这就是为什么我在开始新活动时关闭了当前活动。 – RRTW
7活动很好处理......但你应该寻找可能的解决方案来克服低内存问题,但不要改变android的工作方式。我理解的低内存问题很难解决,但这是你必须忍受的头痛。由于使用图像导致的内存不足问题? – Zoombie
我仍然不知道...在上次活动完成后(),甚至是System.exit(0).....并且调用了另一个活动。不知道是谁做了“Start proc”。如果活动是由意图启动的,日志应该看起来像“正在开始活动...”,而不是“开始过程”。你有什么想法吗?谢谢 :) – RRTW