如何正确地将双打从服务发送到 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))
如何通过 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))