这是我打电话的第一个活动。总线提供程序是otto示例应用程序中的默认提供程序。
void openNextActivity()
{
manager.bus.post("Hi");
// Intent to my next Activity
}
这是我订阅数据的另一个活动中的片段。收到的总线是相同的,但订阅方法没有被调用。
public class ProductListFragment extends BaseFragment {
String LOG_TAG = ProductListFragment.class.getCanonicalName();
public static ProductListFragment newInstance() {
ProductListFragment fragment = new ProductListFragment();
return fragment;
}
public ProductListFragment() {
// Required empty public constructor
}
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
getActivity().invalidateOptionsMenu();
}
@Override
public void onResume() {
super.onResume();
BusProvider.getInstance().register(this);
}
@Override
public void onPause() {
super.onPause();
BusProvider.getInstance().unregister(this);
}
@Subscribe public void onPostRecived(String s) {
Log.d(LOG_TAG, s);
}
}
收到的任何内容都没有错误,但是如果我在片段上点击一个按钮并从那里发布一些内容,则会调用subscribe方法。例如。
@OnClick(R.id.makePostCall) void call() {
BusProvider.getInstance().post("Hi");
}
我正在通过此次通话获得相应的日志。知道代码出错的地方吗?
答案 0 :(得分:1)
你在意图之前发送消息;在意图之后注册的new Handler().postDelayed(new Runnable() {
@Override
public void run() {
BusProvider.getInstance().post("Hi");
}
},3000);
id;
试试吧:
MATCH (a)-[:LEADS_TO]->[]
WITH a,rand() AS rand
ORDER BY rand LIMIT {YourLimit}
MATCH (a)-[l:LEADS_TO]->(t)
RETURN a,l,t
答案 1 :(得分:1)
似乎您在将内容发送到事件总线后订阅了您的第二个活动的片段。考虑改变你的逻辑