应用程序在后台时的BroadcastReceiver

他不想

我正在尝试编写一个应用程序,在该应用程序中,我会根据我通过gcm推送通知发送的消息进行UI更改,并通过使用BroadcastReceiver onReceive函数来实现该操作,但只有在应用程序位于前台时,是在后台还是关闭,什么也没发生,所以可以解决吗?

edit1:在清单文件中,如果我理解您的问题正确

<receiver
            android:name="com.google.android.gms.gcm.GcmReceiver"
            android:exported="true"
            android:permission="com.google.android.c2dm.permission.SEND">
            <intent-filter>
                <action android:name="com.google.android.c2dm.intent.RECEIVE" />

                <category android:name="info.androidhive.gcm" />
            </intent-filter>
        </receiver>

        <service
            android:name="info.droiders.gcm.gcm.MyGcmPushReceiver"
            android:exported="false">
            <intent-filter>
                <action android:name="com.google.android.c2dm.intent.RECEIVE" />
            </intent-filter>
        </service>

        <service
            android:name="info.droiders.gcm.gcm.GcmIntentService"
            android:exported="false">
            <intent-filter>
                <action android:name="com.google.android.gms.iid.InstanceID" />
            </intent-filter>
        </service>

   myBroadcastReceiver = new BroadcastReceiver() {
        @Override
        public void onReceive(Context context, Intent intent) {
        if (intent.getAction().equals(Config.PUSH_NOTIFICATION)) {
                // notification received
                handleChanges(intent);
            }
        }
    };
罗斯卢普

如果您将广播接收者声明为应用程序中的活动或其他类的成员,那么除非您的应用程序正在运行,否则它将不会运行。相反,您应该创建一个扩展广播接收器的独立类。所以改变这个:

   myBroadcastReceiver = new BroadcastReceiver() {
    @Override
    public void onReceive(Context context, Intent intent) {
    if (intent.getAction().equals(Config.PUSH_NOTIFICATION)) {
            // notification received
            handleChanges(intent);
        }
    }
};

并将其放置在自己的文件中:

public class GcmReceiver extends BroadcastReceiver {
     public void onReceive(Context context, Intent intent) {
    if (intent.getAction().equals(Config.PUSH_NOTIFICATION)) {
            // notification received
            handleChanges(intent);
        }
    }
}

现在,即使您的应用未运行,Android也可以找到该类并实例化它。

编辑:更正的类名称,以匹配在OP中显示的清单文件中声明的接收者名称。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

应用程序在后台时的BroadcastReceiver

来自分类Dev

应用程序在后台时的 OnClickListener

来自分类Dev

应用程序在后台时的 OnClickListener

来自分类Dev

应用程序在后台时的通用链接

来自分类Dev

iOS应用程序在后台录制时音频中断

来自分类Dev

UIAutomation:当应用程序在后台时更改位置

来自分类Dev

应用程序在后台时NSNotificationCenter回调

来自分类Dev

应用程序在后台时未调用didUpdateLocations

来自分类Dev

当应用程序在后台时,Sendbird推送通知

来自分类Dev

应用程序在后台时的通用链接

来自分类Dev

android:当应用程序在后台时使屏幕变暗

来自分类Dev

应用程序在后台时停止BackgroundService

来自分类Dev

隐藏表单时在后台运行的应用程序

来自分类Dev

当应用程序在后台时停止服务

来自分类Dev

应用程序在后台时显示插页式广告

来自分类Dev

仅在应用程序运行或在后台运行时才触发GCM BroadcastReceiver

来自分类Dev

当我的应用程序在后台运行时,为什么我的BroadcastReceiver无法注册?

来自分类Dev

当在后台应用程序被终止或被终止时,GCM支持ios应用程序

来自分类Dev

React Native:当应用程序在后台时的应用程序内消息

来自分类Dev

应用程序在后台访问PHPhotoLibrary

来自分类Dev

在后台运行的WPF应用程序

来自分类Dev

使Web应用程序在后台运行

来自分类Dev

在后台启动应用程序

来自分类Dev

Flutter:当应用程序在后台时使用路径提供程序

来自分类Dev

动态链接在应用程序关闭时不起作用,仅在后台时

来自分类Dev

当应用程序处于后台时,将数据从BroadcastReceiver发送到活动

来自分类Dev

蓝色横幅表示应用程序在后台使用位置时,几秒钟后应用程序关闭

来自分类Dev

在后台时快速/ iOS刷新应用程序数据

来自分类Dev

(iOS MPMusicPlayerNotification)当应用程序在后台时如何接收通知

Related 相关文章

  1. 1

    应用程序在后台时的BroadcastReceiver

  2. 2

    应用程序在后台时的 OnClickListener

  3. 3

    应用程序在后台时的 OnClickListener

  4. 4

    应用程序在后台时的通用链接

  5. 5

    iOS应用程序在后台录制时音频中断

  6. 6

    UIAutomation:当应用程序在后台时更改位置

  7. 7

    应用程序在后台时NSNotificationCenter回调

  8. 8

    应用程序在后台时未调用didUpdateLocations

  9. 9

    当应用程序在后台时,Sendbird推送通知

  10. 10

    应用程序在后台时的通用链接

  11. 11

    android:当应用程序在后台时使屏幕变暗

  12. 12

    应用程序在后台时停止BackgroundService

  13. 13

    隐藏表单时在后台运行的应用程序

  14. 14

    当应用程序在后台时停止服务

  15. 15

    应用程序在后台时显示插页式广告

  16. 16

    仅在应用程序运行或在后台运行时才触发GCM BroadcastReceiver

  17. 17

    当我的应用程序在后台运行时,为什么我的BroadcastReceiver无法注册?

  18. 18

    当在后台应用程序被终止或被终止时,GCM支持ios应用程序

  19. 19

    React Native:当应用程序在后台时的应用程序内消息

  20. 20

    应用程序在后台访问PHPhotoLibrary

  21. 21

    在后台运行的WPF应用程序

  22. 22

    使Web应用程序在后台运行

  23. 23

    在后台启动应用程序

  24. 24

    Flutter:当应用程序在后台时使用路径提供程序

  25. 25

    动态链接在应用程序关闭时不起作用,仅在后台时

  26. 26

    当应用程序处于后台时,将数据从BroadcastReceiver发送到活动

  27. 27

    蓝色横幅表示应用程序在后台使用位置时,几秒钟后应用程序关闭

  28. 28

    在后台时快速/ iOS刷新应用程序数据

  29. 29

    (iOS MPMusicPlayerNotification)当应用程序在后台时如何接收通知

热门标签

归档