Я довольно новичок в android, и я пытаюсь передать ценность от своей деятельности к моей службе. Я видел другие ответы на эту тему, но я не нашел в чем проблема, значение не переходит к сервису. В моей деятельности у меня есть программа поиска, и я хочу, чтобы при изменении значения поиска («прогресс») и активации услуги служба получает значение. Когда я закрываю приложение, значение возвращается к нулю и должно быть другим. В моей деятельности я сохраняю значение с помощью sharePreferences.Как передать стоимость от деятельности до обслуживания?
Активность
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
...
//SEEKBAR
textViewSensibilidad.setText("Sensibilidad: " + progress*100/seekBar.getMax()+"%");
seekBar.setOnSeekBarChangeListener(new OnSeekBarChangeListener() {
@Override
public void onProgressChanged(SeekBar seekBar, int progresValue, boolean fromUser) {
progress = progresValue;
}
@Override
public void onStartTrackingTouch(SeekBar seekBar) {
}
@Override
public void onStopTrackingTouch(SeekBar seekBar) {
textViewSensibilidad.setText("Sensibilidad: " + progress*100/seekBar.getMax()+"%");
//SAVE STATE SEEKBAR
SharedPreferences.Editor editor = sharedPreferences.edit();
editor.putInt("progress", progress);
editor.commit();
}
});
//LOAD STATE SEEKBAR
sharedPreferences = getSharedPreferences("progress" , Context.MODE_PRIVATE);
progress = sharedPreferences.getInt("progress", progress);
seekBar.setProgress(progress);
}
public void onClick(View src) {
if(toggleButton.isChecked()){
Log.d(TAG, "onClick: starting srvice");
Intent intent = new Intent(ShakeActivity.this, MyService.class);
intent.putExtra("progress", progress);
startService(intent);
...
Сервис
public class MyService extends Service implements SensorEventListener {
private static final String TAG = "Servicio";
@Override
public IBinder onBind(Intent intent) {
return null;
}
@Override
public int onStartCommand (Intent intent, int flags, int startId){
super.onStartCommand(intent, flags, startId);
Toast.makeText(this, "Shake to Open Whatsapp Activada", Toast.LENGTH_SHORT).show();
Log.d(TAG, "onStart");
if (intent !=null && intent.getExtras()!=null){
progress = intent.getExtras().getInt("progress");
checkeado=intent.getExtras().getBoolean("checkeado");
Toast.makeText(this, "progreso: "+progress+" checkeado: "+checkeado, Toast.LENGTH_SHORT).show();
}
return START_STICKY;
}
@Override
public void onCreate() {
super.onCreate();
Log.d(TAG, "onCreate");
}
@Override
public void onDestroy() {
super.onDestroy();
Toast.makeText(this, "Shake to Open Whatsapp Desactivada", Toast.LENGTH_SHORT).show();
Log.d(TAG, "onDestroy");
//player.stop();
mSensorManager.unregisterListener(this);
}
Любые предложения? ошибки? Я заранее благодарю вас
возможно дубликат [Пример: Связь между активностью и услуг с использованием сообщений] (http://stackoverflow.com/questions/4300291/example-communication-between-activity-and-service-using-messaging) – Simon