我遇到了一个奇怪的问题。 首先,这是我的活动流程
IntActivity - > 111活动 - > 222活动 - > 333Activity
每项活动都有[转发]& [返回键。 (软件按钮) 而我在[转发]中所做的是:(即Int to 111)
Intent intent=new Intent(IntActivity.this, 111Activity.class);
startActivity(intent);
finish();
在[Back]中执行此操作:(即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 ony可以从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}
检查最后一行日志,它不是“正在开始活动”,而是“开始执行”。
我仍然不知道到底发生了什么...欢迎任何想法或建议:)
我的设备是: Android 2.2中的HTC DesireHD(我发布时不会有这个问题) Android 2.3.3中的HTC DesireHD(显示此问题我发布了频率)
答案 0 :(得分:0)
我认为你在这里做错了什么: 使用intent启动一个活动是可以的,但是回到已经启动过一次的活动,对你来说是错误的。当android维护后台堆栈日志开始活动时。
活动就像堆叠卡片,第一活动 - >第二项活动 - >第三项活动 回到android提供的后退按钮,它按照相反的顺序,你不必为它发起另一个意图。