繁体   English   中英

应用程序未运行时小米没有收到通知

[英]Xiaomi does not receive notification when application is not running

我正在开发一个使用 Google 推送通知的应用程序。 应用程序在小米手机中运行时会收到通知,否则当它被杀死时不会收到通知。

如果我们想在应用程序被杀死时收到通知,那么我们需要允许从小米的安全应用程序中手动自动重启应用程序。 我想要任何技巧以编程方式执行此操作而无需询问用户。 有没有办法做到这一点?

在此处输入图像描述

http://en.miui.com/thread-33826-1-1.html

如果小米要正确运行任何应用程序,需要手动完成五项设置。 我对此进行了大量研究,但无法以编程方式修复这些设置。 这些是设置:

  1. 自动启动 -> 开启(切换并重新启动您的应用程序)
  2. 开发者选项->关闭MIUI优化
  3. 开发者选项 -> LOW/OFF 下的内存优化
  4. 电池和性能设置下对后台活动没有限制
  5. 省电模式 -> 关闭

还有许多其他设备需要手动设置才能使应用程序按预期工作,例如联想、一些 Micromax 设备。 公司对后台活动施加此类限制,以提高整体电池寿命。 facebook 和 whatsapp 等一些应用程序可以正常工作,因为这些应用程序可能已作为系统应用程序包含在内。

MIUI 6 & 7 之后:

MIUI省电模式默认设置为“标准”(后台访问定位服务和网络将被限制)

在哪里设置:

设置 -> 其他设置 -> 电池和性能 -> 管理应用程序电池使用 -> 省电模式 ->设置为关闭(MIUI 不会限制后台活动)

至于我的理解,一旦您在最近的应用程序菜单中清除应用程序或清除内存,小米(或 MIUI rom)将强制关闭与该应用程序相关的所有服务和内存,类似于用户进入设置并强制停止应用程序,

该链接讨论了相同的问题,因此除非用户再次启动,否则所有广播接收器和服务都将结束,因此不会收到通知,

但是,您可以尝试在设置中为您的应用程序权限启用自动启动,如果仍然不起作用,请尝试创建自行重启的服务并在设置中启用自动启动,自动启动在 MIUI 中非常重要,直到它全部启用通知或应用活动将被强制关闭并且永远不会启动

我遇到了类似的问题,并通过在我的应用程序中添加一个 BOOT_COMPLETED 接收器来修复它。

将以下内容添加到清单:

<receiver
    android:name=".receivers.BootReceiver"
    android:enabled="true">
    <intent-filter>
       <action android:name="android.intent.action.BOOT_COMPLETED" />
    </intent-filter>
</receiver>

然后创建你的 BootReceiver 类

public class BootReceiver extends BroadcastReceiver {

    @Override
    public void onReceive(Context context, Intent intent) {
        if (intent.getAction().equals("android.intent.action.BOOT_COMPLETED")) {

            Intent startServiceIntent = new Intent(context, FBTokenService.class);
            context.startService(startServiceIntent);

            Intent notificationServiceIntent = new Intent(context, FBNotificationService.class);
            context.startService(notificationServiceIntent);
        }
    }
}

它应该适用于此。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM