我想开始活动A一个robospice请求,然后在活动B.收到请求的结果Robospice Android的 - 即在开始一个活动,结束另一个活动spiceRequest
在活动A
FetchSpiceRequest fetchSpiceRequest = new FetchSpiceRequest();
spiceManager.execute(fetchSpiceRequest, new ActivityB().postListener);
的PostListener实现PendingRequestListener和坐在活动B.
内。在活动B
我们为在以下活动A中启动的待处理请求添加了监听器。
@Override
protected void onStart() {
spiceManager.start(this);
spiceManager.addListenerIfPending(Post.class, 0, new PostListener());
然后,我们在下面的Activity B中实现PostListener。
public final class PostListener implements PendingRequestListener<Post> {
@Override
public void onRequestFailure(SpiceException spiceException) {
Toast.makeText(MainActivity.this, "Exception: " + spiceException.toString(), Toast.LENGTH_SHORT).show();
}
@Override
public void onRequestSuccess(Post post) {
Toast.makeText(MainActivity.this, "Added", Toast.LENGTH_SHORT).show();
}
@Override
public void onRequestNotFound() {
Toast.makeText(MainActivity.this, "Request not found", Toast.LENGTH_SHORT).show();
}
}
最后,创建活动B中调用,这样A可以把它捡起来(例如,当我把新ActivityB()postListener。)一个变量:
public PostListener PostListener;
这不起作用并且它总是在PostListener中调用onRequestNotFound。
我在做什么错?
我也看过这篇文章:Robospice - keep spice service continue running when changing activity但是@Snicolas似乎没有提到spiceManager.execute语句在第一个活动中的样子。
您能否完全确定请求在活动更改期间没有真正完成? – nekojsi
我不知道我想达到什么是可能的。我在这里阅读Snicolas的回应:http://stackoverflow.com/questions/19011200/how-does-robospice-manage-activity-lifecycle?rq = 1“基本上,RS发生的事情是,当一个请求正在处理时,只要相关活动处于活动状态,就会调用它的监听器。如果活动不再活动,它的所有监听器都会从RS中拔出,他们将不会被通知。“ – Simon