我的应用程序遇到了一些问题,我想确定它应该如何工作。
用户输入向活动 A 发送意图。活动 AstartActivityForResult
活动 B。活动 B 完成其工作,设置结果,然后完成。由于环境限制,我不能拥有
我的问题如下:A.onActivityresult
2 秒前被调用A.onDestroy
。我锁定了活动 A,以避免启动
这是一个简化的代码:
A.onNewIntent(Intent intent)
{
if(!mLocked && intent.getAction()==MyIntent.LAUNCHB)
{
Log.d("A", "Locked");
mLocked = true;
Log.d("A", "Intent sent to B");
startActivityForResult(intentB,BCODE); // intent is configured before
}
}
A.onActivityResult()
{
displayBResults();
Log.d("A","Lock release");
mLocked = false;
}
在 B 中:
B.onResume()
{
Log.d("B","Start doing stuff");
doSomeStuff();
setResult(SOME_CODE);
finish();
}
B.onDestroy()
{
super.onDestroy();
Log.d("B","Destroyed");
}
Logcat 看起来像这样:(时间是通常发生的平均值)
00:00:00.000 A Locked
00:00:00.040 A Intent sent to B
00:00:00.440 B Start doing stuff
00:00:10.000 A Lock release
//User input during the 2-seconds gap between onActivityResult && onDestroy
00:00:11.000 A Locked
00:00:11.040 A Intent sent to B
00:00:12.000 B onDestroy
在那之后,我的应用程序不再工作了。有什么建议吗?有什么办法可以缩小这个差距?