Android 如何将整数值从服务发送到片段?
我试图从我的步骤计数器服务中获取数据(即步骤数),以显示在片段上。这是我的服务:Android 如何将整数值从服务发送到片段?,android,android-service,Android,Android Service,我试图从我的步骤计数器服务中获取数据(即步骤数),以显示在片段上。这是我的服务: public class StepCounterService extends Service implements SensorEventListener { SensorManager sensorManager; boolean running = false; static int initialStepCount = 0; static int stepCount = 0; @Override pub
public class StepCounterService extends Service implements SensorEventListener {
SensorManager sensorManager;
boolean running = false;
static int initialStepCount = 0;
static int stepCount = 0;
@Override
public void onCreate() {
super.onCreate();
sensorManager = (SensorManager) this.getSystemService(Context.SENSOR_SERVICE);
}
@Override
public void onSensorChanged(SensorEvent event) {
if (initialStepCount == 0) {
initialStepCount = (int) event.values[0];
}
stepCount = (int)event.values[0] - initialStepCount;
if (running) {
// tv_steps.setText(String.valueOf(stepCount));
}
}
@Override
public void onAccuracyChanged(Sensor sensor, int accuracy) {
}
@Override
public IBinder onBind(Intent intent) {
return null;
}
@Override
public int onStartCommand(Intent intent, int flags, int startId) {
running = true;
Sensor countSensor = sensorManager.getDefaultSensor(Sensor.TYPE_STEP_COUNTER);
if (countSensor != null) {
sensorManager.registerListener(this, countSensor, SensorManager.SENSOR_DELAY_NORMAL);
} else {
}
return super.onStartCommand(intent,flags,startId);
}
@Override
public void onDestroy() {
}
}
如何发送要在TextView的片段中显示的stepCount值?最好的方法是什么?要在服务和其他组件之间发送数据,可以使用绑定服务;这是Android在组件间通信的最佳方式。实现这一点的方法很少:
LocalBroadCastReceiver
李>
EventBus.getDefault().post(新建YourObjectWithANumber())代码>
在您的特定情况下,最好将步骤数保存并保留在文件或数据库中,这样即使在应用程序重新启动时,您也可以在UI中显示它that@MD有关于如何做的提示吗?你想如何调用片段?可能的解决方案:您可以将值设置为公共静态变量或使用Bundle@MD我可以使用Intent吗?@EliasFazel我有一个导航抽屉,我从中调用片段,我希望在启动MainActivity时获得值,以便显示它。