我在FetchAddressIntentService类名addressText中有一个变量,它使用反向地理编码保存邮政编码。我想要的是将addressText数据发送到我的MainActivity。
您必须将主要活动注册到广播,然后从服务发送广播。
在您的主要活动中:
private BroadcastReceiver receiver;
@Override
public void onCreate(Bundle savedInstanceState){
IntentFilter filter = new IntentFilter();
filter.addAction("BROADCAST_ZIP_CODE");
receiver = new BroadcastReceiver() {
@Override
public void onReceive(Context context, Intent intent) {
//get data from the intent and display it
String zipCode = intent.getStringExtra("ZIP_CODE");
//do something with the zipCode
}
};
registerReceiver(receiver, filter);
}
@Override
protected void onDestroy() {
if (receiver != null) {
unregisterReceiver(receiver);
receiver = null;
}
super.onDestroy();
}
在您的服务中:
public class ZipCodeService extends Service {
@Override
public void onCreate() {
String zipCode = "your_zip_code";
Intent intent = new Intent();
intent.setAction("BROADCAST_ZIP_CODE");
intent.putExtra("ZIP_CODE",zipCode);
sendBroadcast(intent);
}
}
您可以通过两种方式实现这一目标。
根据您构建应用程序的方式,您可能更喜欢一种解决方案而不是另一种解决方案。 Android文档将提供最好的帮助。