如何正确地将双打从服务发送到 activity

How to correctly send doubles from service to activity

如何通过 Intent 从服务向我的主 activity 发送双精度值,然后将此值设置为我的主 activity 中按钮的文本?我试过 Double double = Double.parseDouble(""+intent.getExtras().get("TEXT"));。 这在模拟器中有效,但在我的实际 phone 程序崩溃。

每次在服务中更新 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"));
    }

您可以使用方法 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))