我现在手上的项目在真机上调试之后发现一开始还可以接受数据,在logcat中显示了receive data,但是会越来越卡顿,最后logcat中会显示下面的错误:我在网上查了一下都说是因为传输的数据超过了1Mb,但是我传的数据没有那么大,而且一开始是可以传输的,不知道是不是哪里写错了,附上我的关键代码:
发送广播:
EEG_data[0]=Integer.valueOf(s1,16);
EEG_data[1]=Integer.valueOf(s2,16);
EEG_data[2]=Integer.valueOf(s3,16);
EEG_data[3]=Integer.valueOf(s4,16);
Intent intent = new Intent("com.android.smartphone.SmartphoneSystemActivity");
intent.putExtra("4_ch_data", EEG_data);
sendBroadcast(intent);
接收广播:
public class newStress extends Activity implements OnClickListener
{
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        requestWindowFeature(Window.FEATURE_INDETERMINATE_PROGRESS);
        setContentView(R.layout.newstress);
        Display display = this.getWindowManager().getDefaultDisplay();
    
        msgReceiver = new MsgReceiver();
        IntentFilter intentFilter = new IntentFilter();
        intentFilter.addAction("com.android.smartphone.SmartphoneSystemActivity");
        registerReceiver(msgReceiver, intentFilter);
    }    public class MsgReceiver extends BroadcastReceiver {
        @Override
        public void onReceive(Context context, Intent intent) {
            int[] data = new int[4];
            double[] ddata = new double[4];
            int i;            data = intent.getIntArrayExtra("4_ch_data");
            for (i = 0; i < 4; i++) {
                ddata[i] = (double) (data[i]);
                if (ddata[i] <= 8388607) {                    ddata[i] = ((ddata[i] + 8388608) * 2.4 / 8388607);
                } else {
                    ddata[i] = ((ddata[i] - 8388608) * 2.4 / 8388607);
                }
                // Log.i("display", "data: "+ddata[i]);
            }
            Process(ddata);        }
    }    protected void onDestroy()
    {
        super.onDestroy();        Intent bluetoothserivce = new Intent (this,BluetoothActivity.class);
        stopService(bluetoothserivce);
        unregisterReceiver(msgReceiver);
        super.onDestroy();
    }   }