我有活动A
。从A
我开始活动B
。
在活动B
中我使用了大量内存,有时我得到OOM
。我正在努力修复此问题,但与此同时,我想向用户展示一些信息。
OOM
不会导致我的应用崩溃。它只关闭活动B
并恢复A
。是否可以从A
检测到B
未正确完成?
我可以从许多其他活动返回A
,而不仅仅是B
。
我不想在A
(b_started
,b_finished
,b_sth
)中设置一些标记。如果存在一个,我想要干净简单的解决方案。
答案 0 :(得分:2)
是的,我认为你可以通过以下方式解决这个问题:
1)每当您开始活动时,请使用 startActivityForResult(intent,requestCode); 这里传递了活动B唯一的请求代码。
2)现在,只要活动B关闭,您将在A中获得回调 protected void onActivityResult(int requestCode,int resultCode,Intent data) 这里检查请求代码是否与您用于启动活动B的代码相似。
3)你最后的问题是找出活动B是否成功关闭。您可以使用resultCode。当您有意关闭活动时,将其设置为成功,否则它将不会成功。
我希望这有帮助!