在应用关闭时收到通知

时间:2016-10-06 13:14:58

标签: android push-notification broadcastreceiver

我尝试实现系统以在我的应用程序上接收推送通知。 我使用Firebase,当应用程序处于活动状态或后台时一切正常,但应用程序关闭时没有任何反应。 我试图像这样创建一个WakefullBroadcastReceiver

public class NotificationReceiver extends WakefulBroadcastReceiver {

    public static final String action = "com.myapp.notification.RECEIVE";
    private static final String KEY_PUSH_DATA = "com.parse.Data";

    @Override
    public void onReceive(Context context, Intent intent) {
        String intentAction = intent.getAction();
        switch (intentAction) {
            case action:
                String pushDataStr = intent.getStringExtra(KEY_PUSH_DATA);
                if (pushDataStr == null) {
                    return;
                }
                Log.e("PUSH", "Push data : "+pushDataStr);
                Bundle extras = intent.getExtras();
                MyappNotificationManager.getInstance().parseBundle(extras);
                break;
        }
    }
}

我在 Manifest.xml

中添加它
<receiver android:name=".notification.NotificationReceiver">
    <intent-filter>
        <action android:name="com.myapp.notification.RECEIVE"/>
    </intent-filter>
</receiver>

它不起作用,我在Android开发者网站上找不到文档。

感谢您的帮助。

2 个答案:

答案 0 :(得分:1)

添加到Manifest.xml中:

    <uses-permission android:name="android.permission.VIBRATE" />
        <uses-permission android:name="android.permission.RECEIVE_BOOT_COMPLETED"/>

<application>
    <receiver android:name="com.dexterous.flutterlocalnotifications.ScheduledNotificationBootReceiver">
                <intent-filter>
                    <action android:name="android.intent.action.BOOT_COMPLETED"></action>
                </intent-filter>
            </receiver>
            <receiver android:name="com.dexterous.flutterlocalnotifications.ScheduledNotificationReceiver" /> 
</application> 

答案 1 :(得分:0)

对于某些制造商的设备模型,例如Xiaomi,Redmi,Letv,Honor,Oppo,Vivo等,您需要获得AutoStart许可才能在应用关闭时使之工作。对于每个制造商而言,获得此许可的方式各不相同,制造商本身已经为流行的应用程序提供了自动启动许可。因此,您可以使用一个名为AutoStarter的Android库来获取此类设备的许可。

相关问题