【发布时间】:2017-10-08 12:07:51
【问题描述】:
我的应用上有一项服务可以获取我的位置 (gps)。该服务获取纬度、经度等信息,我想将这些信息写入布局片段和活动(TextView)中。
但是我怎样才能获得这些片段的视图引用,因为我的服务?
【问题讨论】:
标签: android android-activity service fragment
我的应用上有一项服务可以获取我的位置 (gps)。该服务获取纬度、经度等信息,我想将这些信息写入布局片段和活动(TextView)中。
但是我怎样才能获得这些片段的视图引用,因为我的服务?
【问题讨论】:
标签: android android-activity service fragment
您可以做一件事来实现这一目标。向活动发送广播。在您要更新查看注册广播的那个活动上。一旦你得到位置的东西,然后发送广播。希望对您有所帮助。当您获取位置信息并通过以下代码中提到的意图传递该信息时,将此代码写入服务中
Intent broadcastIntent = new Intent(your action here);
broadcastIntent.putExtra(BaseBroadCastReceiver.BROADCAST_KEY_AUDIO_INDEX, audioIndex);
broadcastIntent.putExtra(BaseBroadCastReceiver.BROADCAST_KEY_AUDIO_LIST, mSongList.size());
sendBroadcast(broadcastIntent);
在你的活动中写下代码
private void registerMyReceiver() {
IntentFilter filter = new IntentFilter(your action here you passed in service);
registerReceiver(playNewAudio, filter);
}
注意:您的操作可以是任何字符串,但两边的字符串必须相同
当调用activity的oncreate方法时,调用registerMyReceiver()方法 并且在 onDestroy 方法中取消注册,否则您可能会得到 RUNTIME 异常。
下面将是您的实际广播接收器代码
private BroadcastReceiver myBroadcast= new BroadcastReceiver() {
@Override
public void onReceive(Context context, Intent intent) {
//do your stuff here... get extra which you passed
// from service and set that value in views
}
};
【讨论】: