2011-03-11 63 views
0

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

在此先感谢。

+0

您是否尝试过startActivityForResult(intent);并回到A检查结果,并更新您的A. – 2011-03-11 06:02:09

+0

以及我还没有尝试过,但我怀疑它是否会有所帮助,因为正如我所说的代码根本没有被访问。但是,你也许是对的,我会试一试。 – 2011-03-11 06:11:22

+0

嘿它的作品,非常感谢你。请将您的答案作为不同的专栏发布,以便我可以投票赞成。谢谢 – 2011-03-11 07:27:20

回答

0

尝试startActivityForResult(intent);而你B中setResult(RESULT_OK);finish();的B活性已经完成,并且在onActivityResult(int,int,intent);捕捉如果它是RESULT_OK结果代码更新A.

0

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

+0

我没有做任何onPause(),所以我怎么做onResume()?你可以请任何例子解释。谢谢。 – 2011-03-11 06:54:33

+0

阅读活动的LifeCycle:http://developer.android.com/reference/android/app/Activity.html#ActivityLifecycle,只要您的活动A带到后台(即不在前台),它就会进入onPause状态。 – xandy 2011-03-11 08:03:48

0

把你的刷新部件中的onResume方法。一旦活动B完成您的onResume方法将在活动A中调用。

相关问题