2017-10-08 59 views
-1

我在我的應用程序中獲得了我的位置(gps)的服務。該服務獲取緯度,經度等信息,並且我想將這些信息寫入佈局片段和活動(TextView)中。獲取服務中活動和片段的視圖

但是我怎樣才能得到這些片段的視圖引用,因爲我的服務?

回答

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方法中取消註冊,否則您可能會得到R UNTIME例外。

下面將是您的實際撒施接收器代碼

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 
    } 
}; 
+0

感謝你的反應。我該如何發送廣播到活動? – Luzwitz

+0

@Luzwitz,我爲你的便利添加了代碼,如果這可以幫助你,請不要忘記接受並提出答案 –

+0

是的,非常感謝你。 從我的活動開始,如何與我的服務進行溝通?對於變量的變量值,例如... – Luzwitz