即使它被声明为android,也会自动更新第一个屏幕:launchMode =“singleTask”

时间:2011-03-11 05:55:20

标签: android android-intent

我有2项活动。活动A和活动B.两者都是通过意图互相呼叫。活动A调用活动B.活动B访问数据库并通过putExtra()和getExtra()将其发送回活动A. 现在,我的活动A声明为 android:launchMode =“singleTask”
当我回到活动A时,我希望我的活动A能够自动更新或刷新。但令我不知道我在调试中理解的是,如果我将一个活动声明为launchMode =“singleTask”,那么它只会将屏幕从堆栈中带到顶部。它实际上并没有进入代码内部 我理解的概念是否正确?
我看到的解决方案是有一个刷新按钮,点击该按钮访问代码和更新屏幕。但我不想这样做。你认为还有其他选择吗?我不想改变launchMode =“singleTask”

先谢谢。

3 个答案:

答案 0 :(得分:0)

无论哪个launchMode,当您从Activity B切换到Activity A时,都必须调用onResume()方法。您可以将刷新代码放在那里以使您的活动更新。

答案 1 :(得分:0)

尝试startActivityForResult(intent);,当您完成B setResult(RESULT_OK);finish(); B活动,并在A onActivityResult(int,int,intent);中捕获结果代码,如果它是RESULT_OK更新您的A

答案 2 :(得分:0)

将刷新部分放在onResume方法中。一旦活动B完成,你的onResume方法将在活动A中被调用。