我现在手上的项目在真机上调试之后发现一开始还可以接受数据,在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();
} }
发送广播:
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();
} }
解决方案 »
免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货