从服务

时间:2017-10-08 12:07:51

标签: android android-activity service fragment

我的应用程序上有一个获取我的位置(gps)的服务。这项服务获取纬度,经度等信息,我想在布局片段和活动(TextView)中写下这些信息。

但是,自从我的服务以来,如何才能获得这些片段的视图参考?

1 个答案:

答案 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
    }
};