Java Android通过EventBus(greenbot)处理可执行文件的实时输出

Java Android通过EventBus(greenbot)处理可执行文件的实时输出,java,android,executable,android-intentservice,greenrobot-eventbus,Java,Android,Executable,Android Intentservice,Greenrobot Eventbus,要运行可执行文件并获得实时输出,我使用以下代码(使用String[]command=newstring[]{”/a.out“};): 该命令应在服务内执行: public class Service extends IntentService { ... @Override protected void onHandleIntent(Intent intent) { String[] command = new String[]{"/a.out"};

要运行可执行文件并获得实时输出,我使用以下代码(使用
String[]command=newstring[]{”/a.out“};
):

该命令应在服务内执行:

public class Service extends IntentService {
...

    @Override
    protected void onHandleIntent(Intent intent) {
        String[] command = new String[]{"/a.out"};
        Class.execute(command);
    }

}
但我只得到一行作为输出,没有更多,但它应该是数百个。我已经通过替换
EventBus.getDefault().post(newmessageevent(line+“\n”))在我的计算机上尝试了它带有
系统输出打印项次(行)并且它工作得很好

其他信息:订阅服务器通过以下方式处理EventBus:

@Subscribe(threadMode = ThreadMode.MAIN)
public void onMessageEvent(MessageEvent event) {
    tv.append(event.getMessage());
}

@Override
public void onStart() {
    super.onStart();
    EventBus.getDefault().register(this);
}

@Override
public void onStop() {
    EventBus.getDefault().unregister(this);
    super.onStop();
}
电视是一个文本视图:
TextView电视=(TextView)findViewById(R.id.TextView)

用一种简单的方法对该结构进行了测试,如下所示。它更新了TextView,并向TextView传递了多行内容。所以我想这一定是我的执行方法里面的东西

public static void test() {
    for(int i = 0; i<500000; i++)
        EventBus.getDefault().post(new MessageEvent(i+"\n"));
}
也只有一行


用另一个可执行文件测试了它,现在它工作得很好,知道为什么它现在工作吗?

它只通过一行吗?它看起来像是通过执行以下操作将所有文本追加到一行->
tv.append(event.getMessage())


onMessageEvent()
方法中,尝试
System.out.println(event.getMessage())
断言问题是否真的来自EventBus。

很抱歉,我忘了添加什么是电视,它是文本视图(我还将信息添加到问题中)。我不认为它是EventBus,因为一个虚拟函数(只是一个简单的for循环)成功了(更多信息有待商榷)。但是我会尽快尝试一下。尝试过了,但是我使用了Log.I(),而不是System.out.println,在我的logcat中没有“Activity”的输入。
public static void test() {
    for(int i = 0; i<500000; i++)
        EventBus.getDefault().post(new MessageEvent(i+"\n"));
}
public void onMessageEvent(MessageEvent event) {
    Log.i("Activity",event.getMessage());
}