我收到活动时需要更新片段的UI。为此我使用LocalBroadCastReceiver。当我从服务器收到事件时,我将数据设置在缓存中并调用sendBroadcast。在onReceive我的接收器中,我从缓存中获取数据并更新UI。
所有这一切都正常,直到我在onStop()中取消注册接收器。因此,当我将应用程序放在后台时,接收器将被取消注册,并且onReceive方法不会被调用。
我想知道如果我不在onStop上取消注册接收器就可以了吗?如果不推荐那么我应该使用什么来代替BroadcastReceiver,这样即使应用程序处于背景状态,我也可以更新数据。
答案 0 :(得分:0)
在Application标签下的Manifest文件中注册Broadcast Listener:
<receiver android:name="TestReceiver">
<intent-filter>
<action android:name="<ACTION_NAME>"/>
</intent-filter>
</receiver>
当应用在后台时,您将收到onReceive。此外,您还必须创建单独的类扩展BroadcastReceiver类。并且,在清单文件中写下您的类的名称而不是TestReceiver。
public class TestReceiver extends BroadcastReceiver {
@Override
public void onReceive(Context context, Intent intent) {
}}