java - java.lang.RuntimeException:android.os.TransactionTooLargeException:data parcel size 670028 bytes
问题描述
我正在运行一个前台服务,在该服务中我使用传感器来检测步骤。当设备感应到一个步骤并更新我的 UI 时,我正在使用本地广播接收器。一切正常,但几个小时后,我的应用程序在后台崩溃,即使我在用户离开应用程序时取消注册我的广播接收器并在用户再次重新打开应用程序时启用它,并通过从正在运行的服务中获取值来更新我的 UI。这是我遇到此崩溃的方法。此方法为我服务
@Override
public void step(long timeNs) {
numSteps++;
getDistance();
if (numSteps % 36 == 0) {
calorie_count++;
}
// Toast.makeText(this, "Step Increased", Toast.LENGTH_SHORT).show();
contentView.setTextViewText(R.id.stepTxt, "" + numSteps);
dis = new DecimalFormat("##.##").format(total_distance);
contentView.setTextViewText(R.id.distanceTxt, "" + dis);
contentView.setTextViewText(R.id.calorieTxt, "" + calorie_count);
mNotificationManager.notify(4, notification);
steps = String.valueOf(numSteps);
if(stopBrdCsr!=0)
{
sendBroadcastMessage(steps);
}
}
下面是我在服务中的接收器,它接收值并广播它以更新 UI。
if (numSteps != null) {
String dis = new DecimalFormat("##.##").format(total_distance);
Intent intent = new Intent(ACTION_LOCATION_BROADCAST);
intent.putExtra("Steps", numSteps);
intent.putExtra("Meter", String.valueOf(meters));
intent.putExtra("Distance", dis);
intent.putExtra("Calorie", String.valueOf(calorie_count));
LocalBroadcastManager.getInstance(this).sendBroadcast(intent);
}
}
解决方案
推荐阅读
- vue.js - 使用 vee validate 为每个表单指定自定义消息
- java - Swagger UI - 请求的资源上不存在“Access-Control-Allow-Origin”标头
- javascript - vue js应用程序图像未从服务器加载
- c# - 在具有不同参数的接口中定义方法(C#)
- linux - 调查 32 位 MESA 驱动程序选择
- java - 将标签视图与底部导航结合起来
- javascript - javascript 到 css 选择器
- image-processing - 如何自动确定机器学习的特征?
- python - BeautifulSoup - 无法访问的网页
- php - Magento 2 中的类别不会加载 - 有些甚至不会加载 - 创建新的也不会加载