android - 应用程序被终止时(不是强制终止)未收到 GCM 通知

标签 android performance android-intent android-activity google-cloud-messaging

当应用程序在后台和前台时,我很高兴收到通知,但是当应用程序被杀死时,我在某些手机上收不到通知(如小米手机,如 mi3 等)

GCM 消息 0:1434141725194227%03b66390f9fd7ecd 广播 Intent 回调:result=CANCELLED forIntent { act=com.google.android.c2dm.intent.RECEIVE pkg=(有附加功能)}

尽管我在其他手机(如 Nexus、三星等)中收到通知。 有没有人也有类似的问题? 有人可以解释我哪里错了。

这是我的 list 文件

<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="<package_name>">

<permission android:name="<package_name>.permission.C2D_MESSAGE" android:protectionLevel="signature"/>

<uses-permission android:name="android.permission.INTERNET"/>
<uses-permission android:name="<package_name>.permission.C2D_MESSAGE" />
<uses-permission android:name="android.permission.WAKE_LOCK" />
<uses-permission android:name="android.permission.GET_ACCOUNTS" />

<uses-permission android:name="android.permission.CALL_PHONE" />
<uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION"/>
<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION"/>
<uses-permission android:name="android.permission.ACCESS_WIFI_STATE" />
<uses-permission android:name="android.permission.GET_TASKS" />
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE"/>
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/>
<uses-permission android:name="android.permission.VIBRATE" />
<uses-permission android:name="android.permission.CAMERA" />
<uses-permission android:name="android.permission.FLASHLIGHT" />

<action android:name="android.net.wifi.WIFI_STATE_CHANGED"/>
<action android:name="android.net.wifi.STATE_CHANGE"/>


<application
    android:name="<package_name>.ApplicationSingleton"
    android:allowBackup="true"
    android:icon="@mipmap/ic_launcher"
    android:label="@string/app_name"
    android:theme="@style/AppTheme">

    <activity
        android:name="<package_name>.ui.activity.ReferralActivity"
        android:label="@string/app_name"
        android:screenOrientation="portrait"
        android:windowSoftInputMode="adjustResize">

        <intent-filter>
            <action android:name="android.intent.action.MAIN" />
            <category android:name="android.intent.category.LAUNCHER" />
        </intent-filter>
    </activity>


    <receiver
        android:name="<package_name>.gcm.GcmBroadcastReceiver"
        android:permission="com.google.android.c2dm.permission.SEND" >
        <intent-filter>
            <action android:name="com.google.android.c2dm.intent.RECEIVE" />
            <category android:name="<package_name>" />
        </intent-filter>

        <intent-filter>
            <action android:name="com.google.android.c2dm.intent.REGISTRATION"/>
            <category android:name="<package_name>"/>
        </intent-filter>

    </receiver>

    <service android:name="<package_name>.gcm.GcmIntentService" />

    </activity>

    <meta-data
        android:name="com.google.android.gms.version"
        android:value="@integer/google_play_services_version" />


</application>

最佳答案

自动启动可能是最好的 MIUI 功能,默认情况下不会启用,但应该启用。

自动启动有什么作用?它基本上会在手机启动时启动您选择的应用程序,因此您绝不会错过任何通知或更新。

要为您的应用启用自动启动,请按照以下步骤操作:

  1. 点击应用屏幕中的安全应用。

如果您从“设置”菜单进入,您将找不到它,您必须直接点击应用程序图标。

打开安全应用程序: Open Security App

  1. 进入“安全”应用后,点击“权限”。

  2. 点击自动启动

  3. 切换要为其启用自动启动的应用

  4. 重启手机。

现在您已完成自动启动设置!

关于android - 应用程序被终止时(不是强制终止)未收到 GCM 通知,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30812008/

相关文章:

.net - 复杂查询的ORM(尤其是NHibernate)性能

android - 相机打开时如何处理按下 "back"按钮

android - Android 上的 OpenGLES - IllegalStateException : setRenderer has already been called for this instance

android - Twitter OAuth 问题 : error 401

android - 如何动态更改布局与另一个布局

java - 将复杂对象传递给 Activity

android - 如何在 Android 中的 ACTION_CALL 之后返回到我的应用程序

android - 用于跨平台移动开发的 C 或 C++?

performance - 计算机科学的不确定性原理

linux - linux中计算多个进程cpu使用率的有效方法