Android是服务向活动发送数据的最快方式

Android是服务向活动发送数据的最快方式,android,bluetooth,android-broadcast,Android,Bluetooth,Android Broadcast,我正在做一个项目,Arduino通过蓝牙向Android发送恒定的数据流。数据速率低于预期,我正在调查Arduino和Android程序,以找到瓶颈,这就是我发现的。 我认为瓶颈在于android蓝牙服务和活动之间的通信。我正在使用本地广播将数据从服务发送到活动,我注意到,即使在Arduino停止发送数据后,广播仍会继续发送到活动。因此,我得出结论,我的蓝牙服务向活动发送数据的方式是瓶颈 起初,我用的是广播经理,后来我换成了当地的广播经理,看到了一些改进,但没有什么突破性的进展。我想知道是否有人

我正在做一个项目,Arduino通过蓝牙向Android发送恒定的数据流。数据速率低于预期,我正在调查Arduino和Android程序,以找到瓶颈,这就是我发现的。 我认为瓶颈在于android蓝牙服务和活动之间的通信。我正在使用本地广播将数据从服务发送到活动,我注意到,即使在Arduino停止发送数据后,广播仍会继续发送到活动。因此,我得出结论,我的蓝牙服务向活动发送数据的方式是瓶颈


起初,我用的是广播经理,后来我换成了当地的广播经理,看到了一些改进,但没有什么突破性的进展。我想知道是否有人知道我将数据从服务发送到活动的最快方式。

有很多方法。 我建议使用intential,因为它非常简单

public class SomeActivity extends Activity{
    private MyBroadcastReceiver receiver;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        receiver = new MyBroadcastReceiver();
        this.registerReceiver(receiver, new IntentFilter(MyBroadcastReceiver.ACTION));
    }

    @Override
    public void onDestroy() {
        super.onDestroy();
        this.unregisterReceiver(receiver);
    }

    private class MyBroadcastReceiver extends BroadcastReceiver{
        public static final String ACTION = "com.example.ACTION_SOMETHING"
        @Override
        public void onReceive(Context context, Intent intent) {
            String test = intent.getStringExtra("dataToPass");
        }
    }
} 
发送到服务类中的活动

Intent intent = new Intent();
intent.setAction(SomeActivity.MyBroadcastReceiver.ACTION);
intent.putExtra("dataToPass", test);
context.sendBroadcast(intent);

谢谢,是的,那可能会有帮助。然而,我最终做了别的事情。我在活动中启动了一个asyncTask,它不断调用类中的方法,以查看是否有可用数据。这最终使我的表现提高了10倍多。你认为我的方法有消极的一面吗?