当应用在后台时更新UI。取消注册BroadcastReceiver

时间:2017-03-01 11:01:45

标签: android broadcastreceiver

我收到活动时需要更新片段的UI。为此我使用LocalBroadCastReceiver。当我从服务器收到事件时,我将数据设置在缓存中并调用sendBroadcast。在onReceive我的接收器中,我从缓存中获取数据并更新UI。

所有这一切都正常,直到我在onStop()中取消注册接收器。因此,当我将应用程序放在后台时,接收器将被取消注册,并且onReceive方法不会被调用。

我想知道如果我不在onStop上取消注册接收器就可以了吗?如果不推荐那么我应该使用什么来代替BroadcastReceiver,这样即使应用程序处于背景状态,我也可以更新数据。

1 个答案:

答案 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) {

    }}