我已经阅读了很多但仍然没有得到我的完整答案。
启动应用程序A时,在onCreate方法中,我从Api获取数据并在ListView上设置。
这里我也有按钮,当我点击它时,我将进入活动B并发送一些数据。
在我的B活动中,我将数据发送到我的api,如果响应状态正常,我想回到活动A并重新加载数据:调用oncreate方法将我的调用函数定位到api。
在我的清单中,我已经设定了
<activity android:name=".A"
android:launchMode="singleInstance" ></activity>
但是当我调用startActivity时:
Intent i = new Intent(B.this,A.class);
Bundle b = new Bundle();
String from = "upload";
b.putString("action", from);
startActivity(i);
我没有从onCreate点开始激活A. 我在去活动B之后已经尝试过调用finish()函数,但这并没有得到我的任何结果。 我想在A活动中附加一个我从gallery获取文件并将uri传递给活动B.
感谢。
答案 0 :(得分:3)
如果您想要开始一项旨在接收结果的子活动,请不要使用startActivity()
。请改用startActivityForResult()
。您还需要在主活动中实现(覆盖)一个方法,以便在结果准备好时调用。
答案 1 :(得分:0)
如果您想返回A,onCreate
之后需要在{A}中拨打finish()
来startActivity(B)
。这样,当您返回A(因为它被销毁)时,onCreate
将再次被调用。
请注意,这不是处理事情的好方法。一种更好的方法是将“从Api获取数据”部分移动到活动A中的onResume
。
后期编辑:事实上,startActivityForResult()
是在这种情况下的方式,不需要过于复杂的事情。自我注意:从现在开始,选择更简单的路线。