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

问题描述 投票:0回答:1

如何通过意图从服务向我的主要活动发送一个双精度值,然后将此值设置为主要活动中按钮的文本?我尝试了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"));
    }
java android android-intent service double
1个回答
0
投票

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

© www.soinside.com 2019 - 2024. All rights reserved.