T-MVP icon indicating copy to clipboard operation
T-MVP copied to clipboard

OkBus.getInstance().onEvent方法

Open FlyingWater1 opened this issue 6 years ago • 1 comments

OkBus.getInstance().onEvent方法在onCreate中不起作用,在点击事件中或onResume才起作用,是否是因为界面还没有加载完成的原因?

public class Main4Activity extends AppCompatActivity {

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main4);
    
    //写在这里不起作用
    OkBus.getInstance().onEvent(EventTags.JUMP_TO_MAIN2);
    
    findViewById(R.id.fdfsdsfsdf).setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View v) {
            //写在这里可以起作用

// OkBus.getInstance().onEvent(EventTags.JUMP_TO_MAIN); } }); }

@Override
protected void onResume() {
    super.onResume();
    //写在这里可以起作用
    OkBus.getInstance().onEvent(EventTags.JUMP_TO_MAIN2);
}

@Bus(value = EventTags.JUMP_TO_MAIN2)
public void get(){
    Log.e("Main4Activity","aaaaaaaaaaaaaaaa");
}

}

FlyingWater1 avatar Feb 21 '19 09:02 FlyingWater1

找到原因了,是因为生成的class文件的原因,register在onEvent之后的原因,应该先register再onEvent就可以了 protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); this.setContentView(2131296292); OkBus.getInstance().onEvent(1); Object var3 = null; OkBus.getInstance().register(1, (Event)this, -1); }

FlyingWater1 avatar Feb 21 '19 10:02 FlyingWater1