我的应用程序上有一个获取我的位置(gps)的服务。这项服务获取纬度,经度等信息,我想在布局片段和活动(TextView)中写下这些信息。
但是,自从我的服务以来,如何才能获得这些片段的视图参考?
答案 0 :(得分:1)
你可以做一件事来实现这一目标。向活动发送广播。在那个你想在那里更新视图寄存器广播的活动上。一旦你得到位置的东西然后发送广播。希望对你有所帮助。当您获得位置内容并通过意图传递该内容时,请将此代码写入服务中,如下面的代码
中所述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
}
};