Как правильно отправлять дубли от сервиса к активности - PullRequest
0 голосов
/ 13 февраля 2020

Как я могу отправить двойное значение из службы в основное занятие через намерение, а затем установить это значение в качестве текста для кнопки в моем основном занятии? Я попробовал Double double = Double.parseDouble(""+intent.getExtras().get("TEXT"));. Это работает в эмуляторе, но на моем реальном телефоне происходит сбой программы.

Это вызывается каждый раз, когда locationManager обновляется в службе:

Intent i = new Intent("update");
i.putExtra("TEXT", String.format("%f" ,double));
sendBroadcast(i);

Это принимающая часть:

protected void onResume() {
        super.onResume();
        if(broadcastReceiver == null)   {
            broadcastReceiver = new BroadcastReceiver() {
                @Override
                public void onReceive(Context context, Intent intent) {
                    String receivedVal;//I want this to be a double instead
                    receivedVal = (String) intent.getExtras().get("TEXT");
                    Btn.setText(""+receivedVal);
                }
            };
        }
        registerReceiver(broadcastReceiver, new IntentFilter("update"));
    }

1 Ответ

0 голосов
/ 13 февраля 2020

Вы можете напрямую отправить двойное значение внутри намерения, используя метод putExtra () и передав двойное значение (https://developer.android.com/reference/android/content/Intent.html#putExtra (java .lang.String,% 20double) )

Чтобы вернуть значение, вы можете использовать метод getDoubleExtra () (https://developer.android.com/reference/android/content/Intent.html#getDoubleExtra (java .lang.String,% 20double) )

...